From 2a2e3fbbef29bbc568b10f2bd45bd6e658443d6e Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期五, 19 三月 2021 14:42:43 +0800
Subject: [PATCH] 问题处理

---
 src/BLL/Demo.BillView/Config/kdapi.config                         |    2 
 src/BLL/Demo.BillView/Demo.BillView.csproj                        |   50 
 src/BLL/Demo.TimedTaskPlugIn/Demo.TimedTaskPlugIn.csproj          |   21 
 src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs | 1456 +++++++++++++++++++-------------------
 src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanPPBomBillTimeTask.cs      |    4 
 src/BLL/Demo.TimedTaskPlugIn/PRD/StockChangeDynamicAlignment.cs   |    4 
 src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs                      |   49 -
 src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs  |   64 
 src/BLL/Demo.Utility/CloudClient.cs                               |   60 +
 src/BLL/Demo.BillView/packages.config                             |    1 
 src/ProductizationTemplate/Constants/Url.cs                       |    2 
 src/ProductizationTemplate/ProductizationTemplate.csproj          |   12 
 src/BLL/Demo.Utility/Demo.Utility.csproj                          |   11 
 /dev/null                                                         |    9 
 src/ProductizationTemplate/Untity/CloudClient.cs                  |   12 
 src/BLL/Demo.Utility/packages.config                              |    1 
 src/BLL/Demo.OperationService/packages.config                     |    1 
 src/BLL/Demo.BillView/PRD/Pro_TlPushAudit.cs                      |  238 ++++++
 src/BLL/Demo.BillView/PRD/Pro_TlPush.cs                           |  216 +++-
 src/BLL/Demo.TimedTaskPlugIn/packages.config                      |    1 
 src/ProductizationTemplate/packages.config                        |    1 
 src/BLL/Demo.OperationService/Demo.OperationService.csproj        |   10 
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs                 |   14 
 23 files changed, 1,276 insertions(+), 963 deletions(-)

diff --git a/src/BLL/Demo.BillView/Config/kdapi.config b/src/BLL/Demo.BillView/Config/kdapi.config
index 50a5a75..f8141a0 100644
--- a/src/BLL/Demo.BillView/Config/kdapi.config
+++ b/src/BLL/Demo.BillView/Config/kdapi.config
@@ -4,6 +4,6 @@
 		<add key="DbId" value="5f9258a311401c"></add>
     <add key="UserName" value="Administrator"></add>
 		<add key="PassWord" value="888888"></add>
-		<add key="KDApiUrl" value="http://localhost/K3Cloud/"></add>
+		<add key="KDApiUrl" value="http://localhost//k3cloud/"></add>
 	</appSettings>
 </configuration>
\ No newline at end of file
diff --git a/src/BLL/Demo.BillView/Demo.BillView.csproj b/src/BLL/Demo.BillView/Demo.BillView.csproj
index 348e9a3..869c3eb 100644
--- a/src/BLL/Demo.BillView/Demo.BillView.csproj
+++ b/src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -42,17 +42,17 @@
     <Reference Include="K3Cloud.Extend, Version=0.0.80.5, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\K3Cloud.Extend.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.BOS, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.App.Core, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.BOS.App.Core, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.App.Core.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.App.Core.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.Business.PlugIn, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.BOS.Business.PlugIn, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.Business.PlugIn.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.Business.PlugIn.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.BOS.BusinessEntity, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.BusinessEntity.dll</HintPath>
@@ -60,13 +60,13 @@
     <Reference Include="Kingdee.BOS.Contracts, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.Contracts.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.Core, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.BOS.Core, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.Core.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.Core.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.DataEntity, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.BOS.DataEntity, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.DataEntity.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.DataEntity.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.BOS.FileConvert.Core, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.FileConvert.Core.dll</HintPath>
@@ -95,21 +95,16 @@
     <Reference Include="Kingdee.BOS.ServiceFacade.KDServiceFx, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.ServiceFacade.KDServiceFx.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.ServiceHelper, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.BOS.ServiceHelper, Version=7.5.1800.6, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.ServiceHelper.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.ServiceHelper.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.BOS.Web, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.Web.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.Web.Core, Version=7.5.1658.5, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.Web.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath>
-    </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath>
+    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.WebApi.Client.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.BOS.WinForm.KDS20Lib, Version=7.0.104.1, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.WinForm.KDS20Lib.dll</HintPath>
@@ -141,9 +136,9 @@
     <Reference Include="Kingdee.K3.SCM.App.Stock.ServicePlugIn, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.SCM.App.Stock.ServicePlugIn.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.K3.SCM.Business.DynamicForm, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="Kingdee.K3.SCM.Business.DynamicForm, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.K3.SCM.Business.DynamicForm.dll</HintPath>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.K3.SCM.Business.DynamicForm.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.K3.SCM.Common.BusinessEntity, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.SCM.Common.BusinessEntity.dll</HintPath>
@@ -203,11 +198,9 @@
     <Reference Include="ZD.Cloud.Logger, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Logger.1.1.0\lib\net40\ZD.Cloud.Logger.dll</HintPath>
     </Reference>
-    <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\ZD.Cloud.WebApi.dll</HintPath>
-    </Reference>
     <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Share.1.0.0\lib\net452\ZD.Share.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>C:\Users\14027\Desktop\bin鏂囦欢\ZD.Share.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -217,6 +210,7 @@
     <Compile Include="PRD\ProTardinessDetails.cs" />
     <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" />
     <Compile Include="PRD\ProCompleteAnalysisDetails.cs" />
+    <Compile Include="PRD\Pro_TlPushAudit.cs" />
     <Compile Include="PRD\Pro_MaterialRequisitionAuditDayPlan.cs" />
     <Compile Include="PRD\Pro_MaterialRequisitionAudit.cs" />
     <Compile Include="PRD\Pro_ScDayImport.cs" />
@@ -249,6 +243,10 @@
       <Project>{3B5437EE-F19C-4B69-90A4-88866841337B}</Project>
       <Name>Demo.TimedTaskPlugIn</Name>
     </ProjectReference>
+    <ProjectReference Include="..\Demo.Utility\Demo.Utility.csproj">
+      <Project>{0AF059FC-D287-42C4-8835-133C3D96243A}</Project>
+      <Name>Demo.Utility</Name>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <WCFMetadata Include="Connected Services\" />
diff --git a/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
index 46e94b5..7637183 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_MaterialRequisitionAuditDayPlan.cs
@@ -24,9 +24,9 @@
     /// 2. 鏈彃浠舵寕鍦ㄩ攢鍞嚭搴撳崟鐨勪繚瀛樻搷浣滀笂
     /// 鍑哄簱鍏宠仈閿�鍞鍗�
     /// </remarks>
-    [Description("寮曞叆鐢熶骇棰嗘枡鍗曪紝寤虹珛涓庣敓浜ц鍗曠殑鍏宠仈,鏃ヨ鍒掔敤鏂欐竻鍗�")]
+    [Description("閫佽揣璁″垝鍗曟彃浠跺叧鑱旀彁鏂欒鍒掑崟")]
     [HotUpdate]
-    public class Pro_MaterialRequisitionAuditDayPlan : AbstractOperationServicePlugIn
+    public class Pro_TlPushAudit : AbstractOperationServicePlugIn
     {
         public override void OnPreparePropertys(PreparePropertysEventArgs e)
         {
@@ -37,17 +37,16 @@
             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");
+            e.FieldKeys.Add("FHQty");
+            e.FieldKeys.Add("FHMaterID");
         }
-        private const string POFormId = "PRD_PPBOM";
+        private const string POFormId = "paez_PODemandPlan";
         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");
+            Entity entity = this.BusinessInfo.GetEntity("FDetailEntity");//鑾峰彇鏄庣粏淇℃伅
+            Entity linkEntry = this.BusinessInfo.GetEntity("FDetailEntity_Link");
             Field fldSrcFormId = this.BusinessInfo.GetField("FSrcBillType");
             Field fldSrcBillNo = this.BusinessInfo.GetField("FSrcBillNo");
             // 瀵瑰崟鎹綋杩涜寰幆锛屽彇鍏宠仈鐨勬簮鍗曠紪鍙�
@@ -61,9 +60,11 @@
                     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);
+                        srcFormId = "paez_PODemandPlan";
+                        srcSrcBillNo = entryRow["FTLOrderNo"].ToString();
+                        //srcSrcBillNo = entryRow["FTLentryId"].ToString();
+                        //srcSrcBillNo = entryRow["FTLId"].ToString();
+                        //srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PUR_RECEIVEENTRY_LK where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo);
 
                     }
                     catch (Exception)
@@ -100,10 +101,9 @@
                             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);
-
+                    //string srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow);
+                    string srcFormId = "paez_PODemandPlan";
+                    string srcSrcBillNo = entryRow["FTLOrderNo"].ToString();
 
                     if (string.IsNullOrWhiteSpace(srcFormId)
                         || string.IsNullOrWhiteSpace(srcSrcBillNo)
@@ -131,7 +131,7 @@
                     linkRows.Add(linkRow);
                     allNewLinkRows.Add(linkRow);
                 }
-            }   
+            }
             // 涓烘柊寤虹殑婧愬崟鍏宠仈淇℃伅锛岃缃唴鐮�
             IDBService dbService = ServiceHelper.GetService<IDBService>();
             dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType);
@@ -145,19 +145,17 @@
         private DynamicObject[] LoadPurchaseOrder(HashSet<string> poBillNos)
         {
             IViewService viewService = ServiceHelper.GetService<IViewService>();
-            string formId = "PRD_PPBOM";
+            string formId = "paez_PODemandPlan";
 
             // 鎸囧畾闇�瑕佸姞杞界殑閿�鍞鍗曞瓧娈�
             List<SelectorItemInfo> fields = new List<SelectorItemInfo>();
             fields.Add(new SelectorItemInfo("FID"));        // 鍗曟嵁涓婚敭
-            fields.Add(new SelectorItemInfo("FTreeEntity_FEntryID"));     // 鍗曟嵁浣撲富閿�
+            fields.Add(new SelectorItemInfo("FEntity_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"));           //  
+            //fields.Add(new SelectorItemInfo("FBFLowId"));    // 涓氬姟娴佺▼
+            fields.Add(new SelectorItemInfo("FHMaterID"));    // 鐗╂枡
+            fields.Add(new SelectorItemInfo("FHQty"));           // 鍩烘湰鍗曚綅鏁伴噺
+            //fields.Add(new SelectorItemInfo("FBFLOWID"));           //  
 
             // 鎸囧畾杩囨护鏉′欢
             string filter = string.Format(" FBillNo IN ('{0}') ", string.Join("','", poBillNos));
@@ -178,10 +176,10 @@
             {
                 string billNo = Convert.ToString(poObj["BillNo"]);
                 Dictionary<string, DynamicObject> dctOneBill = new Dictionary<string, DynamicObject>();
-                DynamicObjectCollection entryRows = poObj["PPBomEntry"] as DynamicObjectCollection;
+                DynamicObjectCollection entryRows = poObj["FEntity"] as DynamicObjectCollection;
                 foreach (var entryRow in entryRows)
                 {
-                    DynamicObject materialObj = entryRow["MaterialId"] as DynamicObject;
+                    DynamicObject materialObj = entryRow["FHMaterID"] as DynamicObject;
                     if (materialObj == null) continue;
                     string materialNumber = Convert.ToString(materialObj["number"]);
                     dctOneBill[materialNumber] = entryRow;
@@ -208,16 +206,16 @@
         /// <param name="linkRow">鍏宠仈琛�</param>
         private void FillLinkRow(DynamicObject srcRow, DynamicObject toRow, DynamicObject linkRow)
         {
-            linkRow["FlowId"] = srcRow["BFLowId_Id"];
+            //linkRow["FlowId"] = srcRow["BFLowId_Id"];
             linkRow["FlowLineId"] = 0;
-            linkRow["RuleId"] = "PRD_PPBOM2PICKMTRL_NORMAL";
+            linkRow["RuleId"] = Guid.NewGuid().ToString();
             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"]; //鍩烘湰鍗曚綅瀹炲彂鏁伴噺
+            decimal baseUnitQty = Convert.ToDecimal(srcRow["FHQty"]);//鐢ㄦ枡娓呭崟鍗曚綅鏁伴噺
+            decimal joinUnitQty = Convert.ToDecimal(srcRow["FHQty"]);//鐢ㄦ枡娓呭崟鍗曚綅棰嗘枡鏁伴噺
+            linkRow["BASEUNITQTY"] = baseUnitQty;
+            linkRow["STOCKBASEQTY"] = baseUnitQty; //鍩烘湰鍗曚綅瀹炲彂鏁伴噺
         }
 
         /// <summary>
@@ -226,7 +224,7 @@
         /// <returns></returns>
         public bool SourceVerification(string FTID)
         {
-            string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'T_PRD_PPBOMENTRY' and FTID = '{FTID}'";
+            string sql = $" select count(*) from T_BF_INSTANCEENTRY where FSTABLENAME= 'Cg_PODemandPlanBillSub' and FTID = '{FTID}'";
             int count = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
             if (count == 0)
                 return true;
diff --git a/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs b/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
index 07e1916..0daf256 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -12,73 +12,37 @@
 using System.ComponentModel;
 using System.Data;
 using Newtonsoft.Json.Linq;
-using ZD.Cloud.WebApi;
 using ZD.Cloud.Logger;
 using Demo.Model.Model;
 using ZD.Share.Common;
 using System.Linq;
+using Demo.Utility;
 
 namespace Demo.BillView.PRD
 {
-
     [Description("鐢熶骇鏃ヨ鍒掑鍏�")]
     [HotUpdate]
     public class Pro_ScDayImport : AbstractDynamicFormPlugIn
     {
-
-        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
         private string fileFullPath = string.Empty;
-        //public override void BarItemClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
+    
+        //public override void OnLoad(EventArgs e)
         //{
-        //    base.BarItemClick(e);
-        //    if (e.BarItemKey.ToUpper().Equals("TBIMPORT"))
-        //    {
-        //    }
-
-        //    if (e.BarItemKey.ToUpper().Equals("TBWJSC"))
-        //    {
-        //        //Control updateControl = this.View.GetControl("fileFullPath");
-        //        //// 涓婁紶鍦板潃
-        //        //string uploadUrl = "FileUpLoadServices/FileService.svc/upload2attachment/";
-        //        //updateControl.SetCustomPropertyValue("ExtandUrl", uploadUrl);
-        //        //// 涓嬭浇鍦板潃
-        //        //string downloadUrl = "FileUpLoadServices/download.aspx";
-        //        //updateControl.SetCustomPropertyValue("ExDownLoadUrl", downloadUrl);
-
-        //        ImportData(fileFullPath);
-        //    }
-
+        //    base.OnLoad(e);
+        //    throw new Exception("1");
         //}
-        public override void OnLoad(EventArgs e)
-        {
-            base.OnLoad(e);
-            throw new Exception("1");
-        }
-
-
         public override void BarItemClick(BarItemClickEventArgs e)
         {
-            base.BarItemClick(e);
-            throw new Exception("1");
-
             LogHelper.Info("瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳锛�");
             if (e.BarItemKey.ToUpper().Equals("TBIMPORT"))
             {
-                this.View.ShowErrMessage("娴嬭瘯瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳");
                 LogHelper.Info("瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳锛�");
                 ImportData();
+                //this.View.ShowErrMessage("娴嬭瘯瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳");
             }
 
             if (e.BarItemKey.ToUpper().Equals("TBWJSC"))
             {
-                this.View.ShowErrMessage("娴嬭瘯鏂囦欢涓婁紶鍔熻兘鐐瑰嚮鎸夐挳");
-                //Control updateControl = this.View.GetControl("fileFullPath");
-                //// 涓婁紶鍦板潃
-                //string uploadUrl = "FileUpLoadServices/FileService.svc/upload2attachment/";
-                //updateControl.SetCustomPropertyValue("ExtandUrl", uploadUrl);
-                //// 涓嬭浇鍦板潃
-                //string downloadUrl = "FileUpLoadServices/download.aspx";
-                //updateControl.SetCustomPropertyValue("ExDownLoadUrl", downloadUrl);
                 LogHelper.Info("鏂囦欢涓婁紶鍔熻兘鐐瑰嚮鎸夐挳锛�");
                 ImportDataSC(fileFullPath);
             }
@@ -260,6 +224,7 @@
         {
             try
             {
+                CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                 string sql;
                 DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
                 //鑾峰彇鍗曟嵁浣撲俊鎭�
diff --git a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
index b555b37..5225edc 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
@@ -1,99 +1,177 @@
 锘縰sing System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
 using System.ComponentModel;
-using System.Data;
-using System.Linq;
-using System.Text;
-using Demo.Model.Model;
-using Kingdee.BOS;
-using Kingdee.BOS.Core.Attachment;
+using Demo.Utility;
 using Kingdee.BOS.Core.Bill;
 using Kingdee.BOS.Core.Bill.PlugIn;
-using Kingdee.BOS.Core.Bill.PlugIn.Args;
-using Kingdee.BOS.Core.CommonFilter;
 using Kingdee.BOS.Core.DynamicForm;
-using Kingdee.BOS.Core.DynamicForm.DiffCompare;
-using Kingdee.BOS.Core.DynamicForm.Operation;
 using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
-using Kingdee.BOS.Core.List;
 using Kingdee.BOS.Core.Metadata;
-using Kingdee.BOS.Core.Metadata.BarElement;
-using Kingdee.BOS.Core.Metadata.ConvertElement;
-using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs;
 using Kingdee.BOS.Core.Metadata.EntityElement;
-using Kingdee.BOS.Core.Metadata.FormElement;
-using Kingdee.BOS.Core.Metadata.QueryElement;
-using Kingdee.BOS.Core.Msg;
-using Kingdee.BOS.Core.Permission;
-using Kingdee.BOS.Log;
-using Kingdee.BOS.Msg;
-using Kingdee.BOS.Orm;
 using Kingdee.BOS.Orm.DataEntity;
-using Kingdee.BOS.Orm.Metadata.DataEntity;
-using Kingdee.BOS.Resource;
-using Kingdee.BOS.ServiceHelper;
-using Kingdee.BOS.Util;
-using Kingdee.K3.SCM.Business;
-using Kingdee.K3.SCM.Core.SCP;
-using Kingdee.K3.SCM.ServiceHelper;
 using Newtonsoft.Json.Linq;
+using ZD.Cloud.Logger;
 
 namespace Demo.BillView.PRD
 {
-
     [Description("鎻愭枡涓嬫帹閫佽揣閫氱煡鍗�")]
     [Kingdee.BOS.Util.HotUpdate]
     public class Pro_TlPush : AbstractBillPlugIn
     {
+        CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
         public override void BarItemClick(BarItemClickEventArgs e)
         {
-            string a;
-            if ((a = e.BarItemKey.ToUpperInvariant()) != null)
+            try
             {
-                if (a == "TBPUSH")
+                string a;
+                if ((a = e.BarItemKey.ToUpperInvariant()) != null)
                 {
-                    // 鑾峰彇鐖跺崟鎹綋
-                    Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
-                    //DynamicObjectCollection entityRows = entity.DynamicProperty.GetValue(this.Model.DataObject) as DynamicObjectCollection;//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
-                    DynamicObjectCollection entityRows = this.Model.GetEntityDataObject(entity);//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
-                    // 1鍜�2鍧囧彲
-                    // 鍙栧綋鍓嶉〉闈㈠瓙鍗曟嵁浣�
-                    //Entity subEntity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
-                    //DynamicObjectCollection rows = this.Model.GetEntityDataObject(subEntity);//鑾峰緱瀛愬崟鎹綋琛岄泦鍚�
-
-                    string sql = $"select * from ";
-
-
-                    JObject model = new JObject();
-                    model.Add("FHDate", "");
-                    model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" });
-                    model.Add("FSupplierID", new JObject() { ["Fnumber"] = "" });
-
-                    JArray Fentity = new JArray();
-                    for (int i = 0; i < 10; i++)
+                    if (a == "TBPUSH")
                     {
-                        JObject FentityModel = new JObject();
+                        // 鑾峰彇鐖跺崟鎹綋
+                        Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
+                                                                                        //DynamicObjectCollection entityRows = entity.DynamicProperty.GetValue(this.Model.DataObject) as DynamicObjectCollection;//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
+                        DynamicObjectCollection entityRows = this.Model.GetEntityDataObject(entity);//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
+                                                                                                    // 1鍜�2鍧囧彲
+                                                                                                    // 鍙栧綋鍓嶉〉闈㈠瓙鍗曟嵁浣�
+                                                                                                    //Entity subEntity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
+                                                                                                    //DynamicObjectCollection rows = this.Model.GetEntityDataObject(subEntity);//鑾峰緱瀛愬崟鎹綋琛岄泦鍚�
+                                                                                                    //鏋勫缓 model 涓昏〃
+                        JObject model = new JObject();
+                        model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SLD01_SYS" }); //鍗曟嵁绫诲瀷
+                        model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //閫氱煡鏃ユ湡
+                        model.Add("FStockOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); // 鏀舵枡缁勭粐 
+                        model.Add("FPurOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); //閲囪喘缁勭粐
+                        model.Add("FSupplierId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSupplierID") as DynamicObject)?["Number"].ToString() ?? "" }); //渚涘簲鍟�
+                        model.Add("FOwnerTypeIdHead", "BD_OwnerOrg");//  璐т富绫诲瀷
+                        model.Add("FOwnerIdHead", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" });//璐т富 
 
-                        FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍙戞枡鏂瑰紡
 
-                        Fentity.Add(FentityModel);
+                        //model.Add("FPurchaserId", new JObject() { ["Fnumber"] = "" }); //閲囪喘鍛�
+                        //model.Add("FReceiverId", new JObject() { ["Fnumber"] = "" }); //鏀舵枡鍛�
+                        //model.Add("FSupplyAddress", ""); //渚涜揣鏂瑰湴鍧�
+                        //model.Add("FConfirmerId", new JObject() { ["FUserID"] = "" }); // 纭浜�
+                        //model.Add("FConfirmDate", "1900-01-01"); //纭鏃ユ湡 
+                        //model.Add("FSupplyId", new JObject() { ["Fnumber"] = "" }); // 渚涜揣鏂� 
+                        //model.Add("FChargeId", new JObject() { ["Fnumber"] = "" }); // 鏀舵鏂� 
+                        //model.Add("FSettleId", new JObject() { ["Fnumber"] = "" }); // 缁撶畻鏂� 
+                        //model.Add("FIsInsideBill", "false"); // 澶栭儴鍗曟嵁
+                        //model.Add("FScanBox", "false"); // 搴忓垪鍙蜂笂浼�
+
+                        //瀛愯〃 鏁版嵁妯″瀷
+                        JArray Fentity = new JArray();
+                        foreach (var item in entityRows)
+                        {
+                            JObject FentityModel = new JObject();
+                            FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = (item["FHMaterID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 鐗╂枡缂栫爜   
+                            FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 鍗曚綅   
+                            FentityModel.Add("FPreDeliveryDate", this.Model.GetValue("FHDate").ToString()); //  棰勮鍒拌揣鏃ユ湡   
+                            FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 璁′环鍗曚綅   
+                            FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); //  搴撳瓨鍗曚綅   
+                            FentityModel.Add("FActReceiveQty", item["FHQty"].ToString()); // 渚涘簲鍟嗛�佽揣鏁伴噺   
+                            FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//  璐т富绫诲瀷
+                            FentityModel.Add("FOwnerID", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" });//璐т富 
+                            FentityModel.Add("FSrcId", item["FHPOOrderInterID"].ToString());//  婧愬崟鍐呯爜
+                            FentityModel.Add("FSRCFORMID", "PUR_PurchaseOrder");//  婧愬崟绫诲瀷
+                            FentityModel.Add("FSrcBillNo", item["FHPOOrderBillNo"].ToString());//  婧愬崟鍗曞彿
+                            FentityModel.Add("FSRCENTRYID", item["FHPOOrderEntryID"].ToString());//  婧愬崟鍒嗗綍鍐呯爜
+                            FentityModel.Add("FORDERBILLNO", item["FHPOOrderBillNo"].ToString());//  婧愬崟鍗曞彿
+                            FentityModel.Add("FPOORDERENTRYID", item["FHPOOrderEntryID"].ToString());//  婧愬崟鍒嗗綍鍐呯爜
+                            FentityModel.Add("FTLId", this.View.Model.DataObject["Id"].ToString());//  鎻愭枡婧愬崟鍐呯爜
+                            FentityModel.Add("FTLentryId", item["Id"].ToString());//  鎻愭枡婧愬崟鍒嗗綍鍐呯爜
+                            FentityModel.Add("FTLOrderNo", this.Model.GetValue("FBillNo").ToString());//  鎻愭枡婧愬崟鍒嗗綍鍐呯爜
+
+                            JArray Fentity2 = new JArray();
+                            JObject FentityModel2 = new JObject();
+                            FentityModel2.Add("FDetailEntity_Link_FRULEID", "a8c6b6e5-a8c0-4fc1-8592-6b76c2136cf9");
+                            FentityModel2.Add("FDetailEntity_Link_FSTableName", "t_PUR_POOrderEntry");
+                            FentityModel2.Add("FDetailEntity_Link_FSBillId", item["FHPOOrderInterID"].ToString());
+                            FentityModel2.Add("FDetailEntity_Link_FSId", item["FHPOOrderEntryID"].ToString());
+                            Fentity2.Add(FentityModel2);
+                            FentityModel.Add("FDetailEntity_Link", Fentity2);
+                            //鍗曟嵁杞崲鍏宠仈鍏崇郴
+                            //FentityModel.Add("FAuxPropId", new JObject() { }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FConfirmDeliQty", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FConfirmDeliDate", "1900-01-01"); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FConfirmInfo", ""); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FDescription", ""); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FLot", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FSupplierLot", ""); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FPrice", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FTaxPrice", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FDiscountRate", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FEntryTaxRate", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FStockBaseQty", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FStockQty", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FTaxCombination", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FPriceBaseQty", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FStockInMaxQty", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FBaseStockInMaxQty", 0); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FCheckInComing", "false"); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FStockID", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FStockLocId", new JObject() { }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FStockStatusId", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FProduceDate", "1900-01-01"); // 鐗╂枡缂栫爜   
+                            //FentityModel.Add("FExpiryDate", "1900-01-01"); // 鐗╂枡缂栫爜 
+
+                            Fentity.Add(FentityModel);
+                        }
+                        model.Add("FDetailEntity", Fentity); //鏄庣粏淇℃伅
+
+                        JObject _FentityModel = new JObject();
+                        _FentityModel.Add("FSettleOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); //  缁撶畻缁勭粐  
+                        _FentityModel.Add("FSettleCurrId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSettleCurrId") as DynamicObject)?["Number"].ToString() ?? "" }); //  缁撶畻甯佸埆
+                        _FentityModel.Add("FPricePoint", 0); //  瀹氫环鏃剁偣
+                        //FPricePoint  
+                        model.Add("FinanceEntity ", _FentityModel);//璐㈠姟淇℃伅
+
+                        //model.Add("FinanceEntity ", new JObject() {
+                        //"FSettleOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" },
+                        //"FSettleCurrId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSettleCurrId") as DynamicObject)?["Number"].ToString() ?? "" }
+                        //});
+
+                        JObject jsonRoot = new JObject()
+                        {
+                            ["Creator"] = "",
+                            ["NeedUpDateFields"] = new JArray(),
+                            ["NeedReturnFields"] = new JArray(),
+                            ["IsDeleteEntry"] = "false",
+                            ["SubSystemId"] = "",
+                            ["IsVerifyBaseDataField"] = "false",
+                            ["IsAutoSubmitAndAudit"] = true,//鑷姩璋冪敤鎻愪氦鍜屽鏍稿姛鑳�
+                            ["Model"] = model
+                        };
+
+                        var result = cloudClient.Save("PUR_ReceiveBill", jsonRoot.ToString());
+                        JObject saveObj = JObject.Parse(result);
+                        string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+                        if (saveIsSuc == "TRUE")
+                        {
+                            // 鎵撳紑鍗曟嵁缁存姢鐣岄潰锛氫互鎵撳紑閿�鍞鍗�100001涓轰緥
+                            // using Kingdee.BOS.Core.Bill;
+                            string pageId = Guid.NewGuid().ToString();
+                            BillShowParameter showParameter = new BillShowParameter();
+                            showParameter.FormId = "SCP_ReceiveBill";
+                            showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage;
+                            showParameter.PageId = pageId;
+                            showParameter.Status = OperationStatus.EDIT;
+                            // 浼犲叆闇�瑕佷慨鏀圭殑閿�鍞鍗曞唴鐮侊紝婕旂ず浠g爜鐩存帴鍥哄畾鍐欐涓�100001
+                            showParameter.PKey = saveObj["Result"]["Id"].ToString();
+                            this.View.ShowForm(showParameter);
+                        }
+                        else
+                        {
+                            LogHelper.Error(jsonRoot.ToString());
+                            this.View.ShowErrMessage(jsonRoot.ToString());
+                        }
                     }
-                    model.Add("FEntity", Fentity);
-                    JObject jsonRoot = new JObject()
-                    {
-                        ["Creator"] = "",
-                        ["NeedUpDateFields"] = new JArray(),
-                        ["NeedReturnFields"] = new JArray(),
-                        ["IsDeleteEntry"] = "false",
-                        ["SubSystemId"] = "",
-                        ["IsVerifyBaseDataField"] = "false",
-                        ["Model"] = model
-                    };
                 }
             }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
         }
-
-
     }
 }
+
diff --git a/src/BLL/Demo.BillView/PRD/Pro_TlPushAudit.cs b/src/BLL/Demo.BillView/PRD/Pro_TlPushAudit.cs
new file mode 100644
index 0000000..46e94b5
--- /dev/null
+++ b/src/BLL/Demo.BillView/PRD/Pro_TlPushAudit.cs
@@ -0,0 +1,238 @@
+锘縰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;
+using Kingdee.K3.SCM.App;
+
+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_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index 54dce4c..b54443b 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -1,5 +1,6 @@
 锘縰sing Demo.Model.Model;
 using Demo.Model.Model.PODemandPlan;
+using Demo.Utility;
 using K3Cloud.Extend.Utils;
 using Kingdee.BOS.Core;
 using Kingdee.BOS.Core.Bill.PlugIn;
@@ -38,7 +39,6 @@
 using System.Web;
 using System.Windows.Documents;
 using ZD.Cloud.Logger;
-using ZD.Cloud.WebApi;
 using ZD.Share.Common;
 
 namespace Demo.DynamicForm.PRD
@@ -645,7 +645,7 @@
                     if (item.FOwnerId != null)
                         jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId });
                     jsonRoot.Add("Model", jsonModel);
-                    CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                    CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                     var result = cloudClient.Save("paez_CompleteAnalysisTemp", jsonRoot.ToString());
                     JObject saveObj = JObject.Parse(result);
                     string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
@@ -896,7 +896,7 @@
                             ["IsVerifyBaseDataField"] = "false",
                             ["Model"] = Fentity
                         };
-                        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                        CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                         var result = cloudClient.BatchSave("paez_CompleteAnalysisTemp", jsonRoot.ToString());
                         JObject saveObj = JObject.Parse(result);
                         string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
@@ -1489,7 +1489,7 @@
                             ["Model"] = model
                         };
 
-                        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                        CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                         var result = cloudClient.Save("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString());
                         JObject saveObj = JObject.Parse(result);
                         string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
@@ -1644,13 +1644,13 @@
                                 ["IsVerifyBaseDataField"] = "false",
                                 ["Model"] = Fentity
                             };
-                            CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                            CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                             var result = cloudClient.BatchSave("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString());
                             JObject saveObj = JObject.Parse(result);
                             string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
                             if (saveIsSuc != "TRUE")
                             {
-                                LogHelper.Error(jsonRoot.ToString());
+                                LogHelper.Error(saveObj.ToString());
                             }
                             Fentity = new JArray();
                         }
@@ -2073,7 +2073,7 @@
                             ["IsVerifyBaseDataField"] = "false",
                             ["Model"] = FinalyResult
                         };
-                        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+                        CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                         var result = cloudClient.BatchSave("paez_PODemandPlan", jsonRoot.ToString());
                         JObject saveObj = JObject.Parse(result);
                         string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
diff --git a/src/BLL/Demo.BillView/packages.config b/src/BLL/Demo.BillView/packages.config
index 12f2e02..058107e 100644
--- a/src/BLL/Demo.BillView/packages.config
+++ b/src/BLL/Demo.BillView/packages.config
@@ -7,7 +7,6 @@
   <package id="SharpZipLib" version="1.2.0" targetFramework="net472" />
   <package id="ZD.Cloud.Common" version="7.2.3" targetFramework="net472" />
   <package id="ZD.Cloud.Logger" version="1.1.0" targetFramework="net472" />
-  <package id="ZD.Cloud.WebApi" version="7.3.2.3" targetFramework="net472" />
   <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" />
   <package id="ZD.Share" version="1.0.0" targetFramework="net472" />
 </packages>
\ No newline at end of file
diff --git a/src/BLL/Demo.OperationService/Config/kdapi.config b/src/BLL/Demo.OperationService/Config/kdapi.config
deleted file mode 100644
index 25b63df..0000000
--- a/src/BLL/Demo.OperationService/Config/kdapi.config
+++ /dev/null
@@ -1,9 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-	<appSettings>
-		<add key="DbId" value="5e8c33972fbb61"></add>
-		<add key="UserName" value="Administrator"></add>
-		<add key="PassWord" value="888888"></add>
-		<add key="KDApiUrl" value="http://localhost/K3Cloud/"></add>
-	</appSettings>
-</configuration>
\ No newline at end of file
diff --git a/src/BLL/Demo.OperationService/Demo.OperationService.csproj b/src/BLL/Demo.OperationService/Demo.OperationService.csproj
index bd9794a..738c18e 100644
--- a/src/BLL/Demo.OperationService/Demo.OperationService.csproj
+++ b/src/BLL/Demo.OperationService/Demo.OperationService.csproj
@@ -83,12 +83,6 @@
     <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath>
-    </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath>
-    </Reference>
     <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath>
     </Reference>
@@ -127,9 +121,6 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Net.Http" />
     <Reference Include="System.Xml" />
-    <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\ZD.Cloud.WebApi.dll</HintPath>
-    </Reference>
     <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Share.1.0.2\lib\net452\ZD.Share.dll</HintPath>
     </Reference>
@@ -140,7 +131,6 @@
     <Compile Include="SCM\SAL_SaleOrder\SAL_SaleOrderSubmit.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Config\kdapi.config" />
     <None Include="packages.config" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
diff --git a/src/BLL/Demo.OperationService/packages.config b/src/BLL/Demo.OperationService/packages.config
index 2591833..7eacc2b 100644
--- a/src/BLL/Demo.OperationService/packages.config
+++ b/src/BLL/Demo.OperationService/packages.config
@@ -1,7 +1,6 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net452" />
-  <package id="ZD.Cloud.WebApi" version="7.3.2.3" targetFramework="net452" />
   <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net452" />
   <package id="ZD.Share" version="1.0.2" targetFramework="net452" />
 </packages>
\ No newline at end of file
diff --git a/src/BLL/Demo.TimedTaskPlugIn/Config/kdapi.config b/src/BLL/Demo.TimedTaskPlugIn/Config/kdapi.config
deleted file mode 100644
index 25b63df..0000000
--- a/src/BLL/Demo.TimedTaskPlugIn/Config/kdapi.config
+++ /dev/null
@@ -1,9 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-	<appSettings>
-		<add key="DbId" value="5e8c33972fbb61"></add>
-		<add key="UserName" value="Administrator"></add>
-		<add key="PassWord" value="888888"></add>
-		<add key="KDApiUrl" value="http://localhost/K3Cloud/"></add>
-	</appSettings>
-</configuration>
\ No newline at end of file
diff --git a/src/BLL/Demo.TimedTaskPlugIn/Demo.TimedTaskPlugIn.csproj b/src/BLL/Demo.TimedTaskPlugIn/Demo.TimedTaskPlugIn.csproj
index d5ac8b8..f70a271 100644
--- a/src/BLL/Demo.TimedTaskPlugIn/Demo.TimedTaskPlugIn.csproj
+++ b/src/BLL/Demo.TimedTaskPlugIn/Demo.TimedTaskPlugIn.csproj
@@ -9,9 +9,10 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>Demo.TimedTaskPlugIn</RootNamespace>
     <AssemblyName>Demo.TimedTaskPlugIn</AssemblyName>
-    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <Deterministic>true</Deterministic>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -82,11 +83,8 @@
     <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath>
-    </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath>
+    <Reference Include="Kingdee.BOS.WebApi.Client">
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.WebApi.Client.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath>
@@ -135,11 +133,9 @@
     <Reference Include="ZD.Cloud.Logger, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Logger.1.1.0\lib\net40\ZD.Cloud.Logger.dll</HintPath>
     </Reference>
-    <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\ZD.Cloud.WebApi.dll</HintPath>
-    </Reference>
     <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath>
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>C:\Users\14027\Desktop\bin鏂囦欢\ZD.Share.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -149,7 +145,6 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Config\kdapi.config" />
     <None Include="packages.config" />
   </ItemGroup>
   <ItemGroup>
@@ -165,6 +160,10 @@
       <Project>{c13e0c61-b1c8-45dd-96f6-3c7dd573c6e4}</Project>
       <Name>Demo.BLL</Name>
     </ProjectReference>
+    <ProjectReference Include="..\Demo.Utility\Demo.Utility.csproj">
+      <Project>{0AF059FC-D287-42C4-8835-133C3D96243A}</Project>
+      <Name>Demo.Utility</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs b/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs
index 749cccc..2aa3928 100644
--- a/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs
+++ b/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanChangeDynamicAlignment.cs
@@ -1,756 +1,756 @@
-锘縰sing System.ComponentModel;
-using Kingdee.BOS.Contracts;
-using Kingdee.BOS;
-using Kingdee.BOS.Core;
-using Kingdee.BOS.ServiceHelper;
-using System.Data;
-using ZD.Cloud.Logger;
-using Newtonsoft.Json.Linq;
-using System;
-using Kingdee.BOS.Util;
-using System.Linq;
-using ZD.Cloud.WebApi;
-using Demo.Model.Model;
-using Demo.Model.Model.PODemandPlan;
-using System.Diagnostics;
-using System.Collections.Generic;
-using ZD.Share.Common;
+锘�//using System.ComponentModel;
+//using Kingdee.BOS.Contracts;
+//using Kingdee.BOS;
+//using Kingdee.BOS.Core;
+//using Kingdee.BOS.ServiceHelper;
+//using System.Data;
+//using ZD.Cloud.Logger;
+//using Newtonsoft.Json.Linq;
+//using System;
+//using Kingdee.BOS.Util;
+//using System.Linq;
+//using ZD.Cloud.WebApi;
+//using Demo.Model.Model;
+//using Demo.Model.Model.PODemandPlan;
+//using System.Diagnostics;
+//using System.Collections.Generic;
+//using ZD.Share.Common;
 
-namespace Demo.TimedTaskPlugIn.PRD
-{
-    [Description("鏃ヨ鍒掑彂鐢熷彉鍔ㄦ椂鎵ц")]
-    [HotUpdate]
-    public class DayPlanChangeDynamicAlignment : Kingdee.BOS.Contracts.IScheduleService
-    {
-        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
-        public Context Context;
-        List<PRD_Inventory> ListInventory;//搴撳瓨鏄庣粏
-        List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛�
+//namespace Demo.TimedTaskPlugIn.PRD
+//{
+//    [Description("鏃ヨ鍒掑彂鐢熷彉鍔ㄦ椂鎵ц")]
+//    [HotUpdate]
+//    public class DayPlanChangeDynamicAlignment : Kingdee.BOS.Contracts.IScheduleService
+//    {
+//        CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
+//        public Context Context;
+//        List<PRD_Inventory> ListInventory;//搴撳瓨鏄庣粏
+//        List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛�
 
-        public void Run(Context ctx, Schedule schedule)
-        {
-            try
-            {
-                Context = ctx;
-                int Count = DBServiceHelper.ExecuteScalar<int>(Context, "/*dialect*/ select count(*) from SC_WORKBILLSORTBILLSub where ISNULL(FCOMPLETE,'')=''  ", 0);
-                if (Count > 0)
-                {
-                    CompleteSetAnalysis();
-                    DayPlanPPBomBill();
-                    Extraction();
-                }
-            }
-            catch (System.Exception ex)
-            {
-                LogHelper.Error(ex.Message.ToString());
-            }
-        }
+//        public void Run(Context ctx, Schedule schedule)
+//        {
+//            try
+//            {
+//                Context = ctx;
+//                int Count = DBServiceHelper.ExecuteScalar<int>(Context, "/*dialect*/ select count(*) from SC_WORKBILLSORTBILLSub where ISNULL(FCOMPLETE,'')=''  ", 0);
+//                if (Count > 0)
+//                {
+//                    CompleteSetAnalysis();
+//                    DayPlanPPBomBill();
+//                    Extraction();
+//                }
+//            }
+//            catch (System.Exception ex)
+//            {
+//                LogHelper.Error(ex.Message.ToString());
+//            }
+//        }
 
-        /// <summary>
-        /// 榻愬鍒嗘瀽
-        /// </summary>
-        public void CompleteSetAnalysis()
-        {
-            try
-            {
-                Stopwatch sw = new Stopwatch();
-                sw.Start();//寮�濮嬭鏃�
-                //娓呯┖榻愬涓存椂琛�
-                DBServiceHelper.Execute(Context, "/*dialect*/  delete JIT_MOMaterReadysBill ");
-                //鏇存柊鐘舵��
-                DBServiceHelper.Execute(Context, "/*dialect*/  update Sc_WorkBillSortBillsub set FCOMPLETE='' ");
-                //鑾峰彇褰撳墠鍗虫椂搴撳瓨 鎸夌収鐗╂枡+搴撳瓨缁勭粐+璐т富+搴撳瓨鏁伴噺  
-                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" 
-/*dialect*/ 
-  select  isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0) FBASEQTY,T1.FStockOrgId,T1.FMATERIALID,a.FOWNERID,c.FNUMBER from 
-(
-select a.FHPRDORGID FStockOrgId,T2.FMATERIALID from SC_WORKBILLSORTBILLMAIN a
-join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
-join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID
-LEFT JOIN(select FID,FMATERIALID from T_PRD_PPBOMENTRY
-group by FMATERIALID,FID) T2 on T1.FID = t2.FID
-group by a.FHPRDORGID,T2.FMATERIALID
-) T1 
-LEFT JOIN T_STK_Inventory a on T1.FStockOrgId = a.FStockOrgId and T1.FMATERIALID =a.FMATERIALID 
-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
---where T1.FMATERIALID in (105773)
-");
-                ListInventory = ds.ToModelList<PRD_Inventory>();
-                //鎬诲簱瀛� 鐗╂枡+搴撳瓨缁勭粐+搴撳瓨鏁伴噺
-                ds = DBServiceHelper.ExecuteDataSet(Context, @" 
-/*dialect*/ 
- select  sum(isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0))FBASEQTY,T1.FStockOrgId,T1.FMATERIALID from 
-(
-select a.FHPRDORGID FStockOrgId,T2.FMATERIALID from SC_WORKBILLSORTBILLMAIN a
-join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
-join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID
-LEFT JOIN(select FID,FMATERIALID from T_PRD_PPBOMENTRY
-group by FMATERIALID,FID) T2 on T1.FID = t2.FID
-group by a.FHPRDORGID,T2.FMATERIALID
-) T1 
-LEFT JOIN T_STK_Inventory a on T1.FStockOrgId = a.FStockOrgId and T1.FMATERIALID =a.FMATERIALID 
-LEFT JOIN JIT_MOMaterReadysBill B ON T1.FStockOrgId = b.FHSTOCKORGID and T1.FMATERIALID =b.FHMATERID
---where T1.FMATERIALID in (105773)
-group by T1.FStockOrgId,T1.FMATERIALID
-");
-                ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>();
-                //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁
-                string sql = @"
-/*dialect*/
-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.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty,
-T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount  from SC_WORKBILLSORTBILLMAIN a
-join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
-join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID
-LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FNeedQty) FNeedQty, FMATERIALID from T_PRD_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_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID
---鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒�
-where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0
-ORDER BY b.FHMASTERDATE,a.FHOrderLev 
-";
-                ds = DBServiceHelper.ExecuteDataSet(Context, sql);
-                List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>();
-                //鏃ヨ鍒�+鐢熶骇璁㈠崟瀛愯〃缂栫爜ID
-                var DatePlanList = BomList.GroupBy(p => new { p.FHMASTERDATE, p.FPRDMOENTYID }).Select(x => new PRD_PPBOM { FHMASTERDATE = x.Key.FHMASTERDATE, FPRDMOENTYID = x.Key.FPRDMOENTYID }).ToList();
-                //CompleteAnalysisTempModel 鐢ㄤ簬瀛樺偍涓存椂闇�瑕佹彃鍏ユ暟鎹�
-                List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>();
-                int i = 1;
-                //鍒涘缓瀛楀吀 鐢ㄤ簬鍌ㄥ瓨鐗╂枡 + 鍗犵敤鏁伴噺
-                Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>();
-                foreach (var item in DatePlanList)
-                {
-                    //绛涢�夊嚭褰撴棩璁″垝鏁版嵁
-                    var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList();
-                    foreach (var _item in _BomList)
-                    {
-                        //璇ユ棩璁″垝鐗╂枡闇�瑕佹暟
-                        decimal need = _item.PlanCount;
-                        var sjkcList = ListInventoryByStockOrgId.Where(x => x.FMATERIALID == _item.FMATERIALID2 && x.FStockOrgId == _item.FStockOrgId).FirstOrDefault();
-                        //鐪熸闇�瑕佸彇璁$畻鐨勬暟閲忥紙鎷嗗垎璐т富锛�
-                        //璐т富鍖归厤
-                        List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FMATERIALID == _item.FMATERIALID2 && c.FStockOrgId == _item.FStockOrgId && c.FBASEQTY > 0).ToList();
-                        if (_ListInventory.Count > 0)
-                        {
-                            decimal _fLackCount = _item.PlanCount > sjkcList.FBASEQTY ? (_item.PlanCount - sjkcList.FBASEQTY) : 0;//缂烘枡鏁伴噺
-                            foreach (var Inventory in _ListInventory)
-                            {
+//        /// <summary>
+//        /// 榻愬鍒嗘瀽
+//        /// </summary>
+//        public void CompleteSetAnalysis()
+//        {
+//            try
+//            {
+//                Stopwatch sw = new Stopwatch();
+//                sw.Start();//寮�濮嬭鏃�
+//                //娓呯┖榻愬涓存椂琛�
+//                DBServiceHelper.Execute(Context, "/*dialect*/  delete JIT_MOMaterReadysBill ");
+//                //鏇存柊鐘舵��
+//                DBServiceHelper.Execute(Context, "/*dialect*/  update Sc_WorkBillSortBillsub set FCOMPLETE='' ");
+//                //鑾峰彇褰撳墠鍗虫椂搴撳瓨 鎸夌収鐗╂枡+搴撳瓨缁勭粐+璐т富+搴撳瓨鏁伴噺  
+//                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, @" 
+///*dialect*/ 
+//  select  isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0) FBASEQTY,T1.FStockOrgId,T1.FMATERIALID,a.FOWNERID,c.FNUMBER from 
+//(
+//select a.FHPRDORGID FStockOrgId,T2.FMATERIALID from SC_WORKBILLSORTBILLMAIN a
+//join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
+//join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID
+//LEFT JOIN(select FID,FMATERIALID from T_PRD_PPBOMENTRY
+//group by FMATERIALID,FID) T2 on T1.FID = t2.FID
+//group by a.FHPRDORGID,T2.FMATERIALID
+//) T1 
+//LEFT JOIN T_STK_Inventory a on T1.FStockOrgId = a.FStockOrgId and T1.FMATERIALID =a.FMATERIALID 
+//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
+//--where T1.FMATERIALID in (105773)
+//");
+//                ListInventory = ds.ToModelList<PRD_Inventory>();
+//                //鎬诲簱瀛� 鐗╂枡+搴撳瓨缁勭粐+搴撳瓨鏁伴噺
+//                ds = DBServiceHelper.ExecuteDataSet(Context, @" 
+///*dialect*/ 
+// select  sum(isnull(a.FBASEQTY,0)-ISNULL(b.FHUseQty,0))FBASEQTY,T1.FStockOrgId,T1.FMATERIALID from 
+//(
+//select a.FHPRDORGID FStockOrgId,T2.FMATERIALID from SC_WORKBILLSORTBILLMAIN a
+//join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
+//join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID
+//LEFT JOIN(select FID,FMATERIALID from T_PRD_PPBOMENTRY
+//group by FMATERIALID,FID) T2 on T1.FID = t2.FID
+//group by a.FHPRDORGID,T2.FMATERIALID
+//) T1 
+//LEFT JOIN T_STK_Inventory a on T1.FStockOrgId = a.FStockOrgId and T1.FMATERIALID =a.FMATERIALID 
+//LEFT JOIN JIT_MOMaterReadysBill B ON T1.FStockOrgId = b.FHSTOCKORGID and T1.FMATERIALID =b.FHMATERID
+//--where T1.FMATERIALID in (105773)
+//group by T1.FStockOrgId,T1.FMATERIALID
+//");
+//                ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>();
+//                //闇�瑕侀綈濂楀垎鏋愮殑鏁版嵁
+//                string sql = @"
+///*dialect*/
+//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.FMOBillNO,T1.FMOEntrySeq,T1.FMoId,T1.FMaterialID,T1.FQty,
+//T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,(FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty) PlanCount  from SC_WORKBILLSORTBILLMAIN a
+//join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
+//join T_PRD_PPBOM T1 on a.FPRDMOMAINID = t1.FMoId and a.FPRDMOENTYID = t1.FMOENTRYID
+//LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FNeedQty) FNeedQty, FMATERIALID from T_PRD_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_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID
+//--鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒�
+//where (FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0
+//ORDER BY b.FHMASTERDATE,a.FHOrderLev 
+//";
+//                ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+//                List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>();
+//                //鏃ヨ鍒�+鐢熶骇璁㈠崟瀛愯〃缂栫爜ID
+//                var DatePlanList = BomList.GroupBy(p => new { p.FHMASTERDATE, p.FPRDMOENTYID }).Select(x => new PRD_PPBOM { FHMASTERDATE = x.Key.FHMASTERDATE, FPRDMOENTYID = x.Key.FPRDMOENTYID }).ToList();
+//                //CompleteAnalysisTempModel 鐢ㄤ簬瀛樺偍涓存椂闇�瑕佹彃鍏ユ暟鎹�
+//                List<CompleteAnalysisTempModel> completeAnalysisTempModel = new List<CompleteAnalysisTempModel>();
+//                int i = 1;
+//                //鍒涘缓瀛楀吀 鐢ㄤ簬鍌ㄥ瓨鐗╂枡 + 鍗犵敤鏁伴噺
+//                Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>();
+//                foreach (var item in DatePlanList)
+//                {
+//                    //绛涢�夊嚭褰撴棩璁″垝鏁版嵁
+//                    var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList();
+//                    foreach (var _item in _BomList)
+//                    {
+//                        //璇ユ棩璁″垝鐗╂枡闇�瑕佹暟
+//                        decimal need = _item.PlanCount;
+//                        var sjkcList = ListInventoryByStockOrgId.Where(x => x.FMATERIALID == _item.FMATERIALID2 && x.FStockOrgId == _item.FStockOrgId).FirstOrDefault();
+//                        //鐪熸闇�瑕佸彇璁$畻鐨勬暟閲忥紙鎷嗗垎璐т富锛�
+//                        //璐т富鍖归厤
+//                        List<PRD_Inventory> _ListInventory = ListInventory.Where(c => c.FMATERIALID == _item.FMATERIALID2 && c.FStockOrgId == _item.FStockOrgId && c.FBASEQTY > 0).ToList();
+//                        if (_ListInventory.Count > 0)
+//                        {
+//                            decimal _fLackCount = _item.PlanCount > sjkcList.FBASEQTY ? (_item.PlanCount - sjkcList.FBASEQTY) : 0;//缂烘枡鏁伴噺
+//                            foreach (var Inventory in _ListInventory)
+//                            {
 
-                                if (need == 0)
-                                    break;
-                                decimal fCompleteCount = need >= Inventory.FBASEQTY ? Inventory.FBASEQTY : need;//榻愬鏁伴噺
-                                decimal occupyMaterial = 0;
-                                if (!occupyDic.ContainsKey(_item.FMATERIALID2))
-                                {
-                                    occupyDic.Add(_item.FMATERIALID2, fCompleteCount);
-                                }
-                                else
-                                {
-                                    occupyMaterial = occupyDic[_item.FMATERIALID2];
-                                    occupyDic[_item.FMATERIALID2] = occupyMaterial + fCompleteCount;
-                                }
-                                completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel
-                                {
-                                    FHMainICMOInterIDr = _item.FPRDMOMAINID,
-                                    FHMainICMOEntryID = _item.FPRDMOENTYID,
-                                    FHICMOInterID = _item.FID.ToString(),
-                                    FHICMOEntryID = _item.FEntryID.ToString(),
-                                    FHMaterID = _item.FNumber,
-                                    FHStockOrgID = _item.OrgFnumber,
-                                    FHPRDORGID = _item.OrgFnumber,
-                                    FPRDBillNo = _item.FMOBillNO,
-                                    FOwnerTypeId = "BD_OwnerOrg",
-                                    FOwnerId = Inventory.Fnumber,
-                                    FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺
-                                    FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲�
-                                    FCompleteCount = fCompleteCount, //榻愬鏁伴噺
-                                    FLackCount = _fLackCount,//缂烘枡鏁伴噺
-                                    FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨
-                                    FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺
-                                    FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺
-                                    FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�",
-                                    FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈�
-                                });
-                                //鎵e噺鎬诲簱瀛樻暟閲�
-                                sjkcList.FBASEQTY = sjkcList.FBASEQTY >= fCompleteCount ? sjkcList.FBASEQTY - fCompleteCount : 0;
-                                //鍓╀綑鏃ヨ鍒掗渶姹傛暟閲�
-                                need = need >= Inventory.FBASEQTY ? need - Inventory.FBASEQTY : 0;
-                                //鎵e噺娑堣�楀簱瀛�
-                                Inventory.FBASEQTY = Inventory.FBASEQTY - fCompleteCount;
-                            }
-                        }
-                        else
-                        {
-                            decimal occupyMaterial = 0;
-                            if (occupyDic.ContainsKey(_item.FMATERIALID2))
-                                occupyMaterial = occupyDic[_item.FMATERIALID2];
-                            completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel
-                            {
-                                FHMainICMOInterIDr = _item.FPRDMOMAINID,
-                                FHMainICMOEntryID = _item.FPRDMOENTYID,
-                                FHICMOInterID = _item.FID.ToString(),
-                                FHICMOEntryID = _item.FEntryID.ToString(),
-                                FHMaterID = _item.FNumber,
-                                FHStockOrgID = _item.OrgFnumber,
-                                FHPRDORGID = _item.OrgFnumber,
-                                FPRDBillNo = _item.FMOBillNO,
-                                FOwnerTypeId = "BD_OwnerOrg",
-                                FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺
-                                FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲�
-                                FCompleteCount = 0, //榻愬鏁伴噺
-                                FLackCount = _item.PlanCount,//缂烘枡鏁伴噺
-                                FHStockQty = 0,//鍗虫椂搴撳瓨
-                                FHLeftQty = 0,//鍙敤鏁伴噺
-                                FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺
-                                FComPlete = "鏈綈濂�",
-                                FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈�
-                            });
-                        }
-                    }
-                    //Thread.Sleep(100);
-                    i++;
-                }
-                i = 1;
-                foreach (var item in completeAnalysisTempModel)
-                {
-                    // this.View.Session["ProcessRateValue"] = Convert.ToInt32(this.View.Session["ProcessRateValue"]) + Convert.ToInt32(1 / completeAnalysisTempModel.Count * 90);
-                    JObject jsonRoot = new JObject();
-                    jsonRoot.Add("Creator", "");
-                    jsonRoot.Add("NeedUpDateFields", new JArray());
-                    jsonRoot.Add("NeedReturnFields", new JArray());
-                    jsonRoot.Add("IsDeleteEntry", "true");
-                    jsonRoot.Add("SubSystemId", "");
-                    jsonRoot.Add("IsVerifyBaseDataField", "");
-                    JObject jsonModel = new JObject();
-                    jsonModel.Add("FHMainICMOInterIDr", item.FHMainICMOInterIDr);
-                    jsonModel.Add("FHMainICMOEntryID", item.FHMainICMOEntryID);
-                    jsonModel.Add("FHICMOInterID", item.FHICMOInterID);
-                    jsonModel.Add("FHICMOEntryID", item.FHICMOEntryID);
-                    jsonModel.Add("FHMaterID", new JObject() { ["FNUMBER"] = item.FHMaterID });
-                    jsonModel.Add("FHUseQty", item.FHUseQty);
-                    jsonModel.Add("FHStockOrgID", new JObject() { ["FNUMBER"] = item.FHStockOrgID });
-                    jsonModel.Add("FHStockQty", item.FHStockQty);
-                    jsonModel.Add("FHLeftQty", item.FHLeftQty);
-                    jsonModel.Add("FHPRDORGID", new JObject() { ["FNUMBER"] = item.FHStockOrgID });
-                    jsonModel.Add("FUnitDosage", item.FUnitDosage);
-                    jsonModel.Add("FSumPlanCount", item.FSumPlanCount);
-                    jsonModel.Add("FCompleteCount", item.FCompleteCount);
-                    jsonModel.Add("FPRDBillNo", item.FPRDBillNo);
-                    jsonModel.Add("FOwnerTypeId", item.FOwnerTypeId);
-                    jsonModel.Add("FComPlete", item.FComPlete);
-                    jsonModel.Add("FLackCount", item.FLackCount);
-                    jsonModel.Add("FOccupyCount", item.FOccupyCount);
-                    jsonModel.Add("FPlanDate", item.FPlanDate);
-                    if (item.FOwnerId != null)
-                        jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId });
-                    jsonRoot.Add("Model", jsonModel);
-                    var result = cloudClient.Save("paez_CompleteAnalysisTemp", jsonRoot.ToString());
-                    JObject saveObj = JObject.Parse(result);
-                    string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
-                    if (saveIsSuc != "TRUE")
-                    {
-                        LogHelper.Error(jsonRoot.ToString());
-                    }
-                    i++;
-                }
-                //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬�
-                DBServiceHelper.Execute(Context, @"
-/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�')
-");
-                DBServiceHelper.Execute(Context, @"
-/*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�')
-");
-                sw.Stop();//缁撴潫璁℃椂
-                LogHelper.Info("杩愯鎬绘椂闀匡細" + sw.Elapsed);
-            }
-            catch (Exception ex)
-            {
-                LogHelper.Error(ex.Message.ToString());
-            }
-        }
+//                                if (need == 0)
+//                                    break;
+//                                decimal fCompleteCount = need >= Inventory.FBASEQTY ? Inventory.FBASEQTY : need;//榻愬鏁伴噺
+//                                decimal occupyMaterial = 0;
+//                                if (!occupyDic.ContainsKey(_item.FMATERIALID2))
+//                                {
+//                                    occupyDic.Add(_item.FMATERIALID2, fCompleteCount);
+//                                }
+//                                else
+//                                {
+//                                    occupyMaterial = occupyDic[_item.FMATERIALID2];
+//                                    occupyDic[_item.FMATERIALID2] = occupyMaterial + fCompleteCount;
+//                                }
+//                                completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel
+//                                {
+//                                    FHMainICMOInterIDr = _item.FPRDMOMAINID,
+//                                    FHMainICMOEntryID = _item.FPRDMOENTYID,
+//                                    FHICMOInterID = _item.FID.ToString(),
+//                                    FHICMOEntryID = _item.FEntryID.ToString(),
+//                                    FHMaterID = _item.FNumber,
+//                                    FHStockOrgID = _item.OrgFnumber,
+//                                    FHPRDORGID = _item.OrgFnumber,
+//                                    FPRDBillNo = _item.FMOBillNO,
+//                                    FOwnerTypeId = "BD_OwnerOrg",
+//                                    FOwnerId = Inventory.Fnumber,
+//                                    FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺
+//                                    FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲�
+//                                    FCompleteCount = fCompleteCount, //榻愬鏁伴噺
+//                                    FLackCount = _fLackCount,//缂烘枡鏁伴噺
+//                                    FHStockQty = sjkcList.FBASEQTY,//鍗虫椂搴撳瓨
+//                                    FHLeftQty = Inventory.FBASEQTY,//鍙敤鏁伴噺
+//                                    FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺
+//                                    FComPlete = sjkcList.FBASEQTY >= _item.PlanCount ? "榻愬" : "鏈綈濂�",
+//                                    FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈�
+//                                });
+//                                //鎵e噺鎬诲簱瀛樻暟閲�
+//                                sjkcList.FBASEQTY = sjkcList.FBASEQTY >= fCompleteCount ? sjkcList.FBASEQTY - fCompleteCount : 0;
+//                                //鍓╀綑鏃ヨ鍒掗渶姹傛暟閲�
+//                                need = need >= Inventory.FBASEQTY ? need - Inventory.FBASEQTY : 0;
+//                                //鎵e噺娑堣�楀簱瀛�
+//                                Inventory.FBASEQTY = Inventory.FBASEQTY - fCompleteCount;
+//                            }
+//                        }
+//                        else
+//                        {
+//                            decimal occupyMaterial = 0;
+//                            if (occupyDic.ContainsKey(_item.FMATERIALID2))
+//                                occupyMaterial = occupyDic[_item.FMATERIALID2];
+//                            completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel
+//                            {
+//                                FHMainICMOInterIDr = _item.FPRDMOMAINID,
+//                                FHMainICMOEntryID = _item.FPRDMOENTYID,
+//                                FHICMOInterID = _item.FID.ToString(),
+//                                FHICMOEntryID = _item.FEntryID.ToString(),
+//                                FHMaterID = _item.FNumber,
+//                                FHStockOrgID = _item.OrgFnumber,
+//                                FHPRDORGID = _item.OrgFnumber,
+//                                FPRDBillNo = _item.FMOBillNO,
+//                                FOwnerTypeId = "BD_OwnerOrg",
+//                                FUnitDosage = _item.dwyl.ToString(),//鍗曚綅鐢ㄩ噺
+//                                FSumPlanCount = _item.PlanCount.ToString(),//璁″垝鎬绘暟閲�
+//                                FCompleteCount = 0, //榻愬鏁伴噺
+//                                FLackCount = _item.PlanCount,//缂烘枡鏁伴噺
+//                                FHStockQty = 0,//鍗虫椂搴撳瓨
+//                                FHLeftQty = 0,//鍙敤鏁伴噺
+//                                FOccupyCount = occupyMaterial,//鍗犵敤鏁伴噺
+//                                FComPlete = "鏈綈濂�",
+//                                FPlanDate = item.FHMASTERDATE // 鏃ヨ鍒掓棩鏈�
+//                            });
+//                        }
+//                    }
+//                    //Thread.Sleep(100);
+//                    i++;
+//                }
+//                i = 1;
+//                foreach (var item in completeAnalysisTempModel)
+//                {
+//                    // this.View.Session["ProcessRateValue"] = Convert.ToInt32(this.View.Session["ProcessRateValue"]) + Convert.ToInt32(1 / completeAnalysisTempModel.Count * 90);
+//                    JObject jsonRoot = new JObject();
+//                    jsonRoot.Add("Creator", "");
+//                    jsonRoot.Add("NeedUpDateFields", new JArray());
+//                    jsonRoot.Add("NeedReturnFields", new JArray());
+//                    jsonRoot.Add("IsDeleteEntry", "true");
+//                    jsonRoot.Add("SubSystemId", "");
+//                    jsonRoot.Add("IsVerifyBaseDataField", "");
+//                    JObject jsonModel = new JObject();
+//                    jsonModel.Add("FHMainICMOInterIDr", item.FHMainICMOInterIDr);
+//                    jsonModel.Add("FHMainICMOEntryID", item.FHMainICMOEntryID);
+//                    jsonModel.Add("FHICMOInterID", item.FHICMOInterID);
+//                    jsonModel.Add("FHICMOEntryID", item.FHICMOEntryID);
+//                    jsonModel.Add("FHMaterID", new JObject() { ["FNUMBER"] = item.FHMaterID });
+//                    jsonModel.Add("FHUseQty", item.FHUseQty);
+//                    jsonModel.Add("FHStockOrgID", new JObject() { ["FNUMBER"] = item.FHStockOrgID });
+//                    jsonModel.Add("FHStockQty", item.FHStockQty);
+//                    jsonModel.Add("FHLeftQty", item.FHLeftQty);
+//                    jsonModel.Add("FHPRDORGID", new JObject() { ["FNUMBER"] = item.FHStockOrgID });
+//                    jsonModel.Add("FUnitDosage", item.FUnitDosage);
+//                    jsonModel.Add("FSumPlanCount", item.FSumPlanCount);
+//                    jsonModel.Add("FCompleteCount", item.FCompleteCount);
+//                    jsonModel.Add("FPRDBillNo", item.FPRDBillNo);
+//                    jsonModel.Add("FOwnerTypeId", item.FOwnerTypeId);
+//                    jsonModel.Add("FComPlete", item.FComPlete);
+//                    jsonModel.Add("FLackCount", item.FLackCount);
+//                    jsonModel.Add("FOccupyCount", item.FOccupyCount);
+//                    jsonModel.Add("FPlanDate", item.FPlanDate);
+//                    if (item.FOwnerId != null)
+//                        jsonModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId });
+//                    jsonRoot.Add("Model", jsonModel);
+//                    var result = cloudClient.Save("paez_CompleteAnalysisTemp", jsonRoot.ToString());
+//                    JObject saveObj = JObject.Parse(result);
+//                    string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+//                    if (saveIsSuc != "TRUE")
+//                    {
+//                        LogHelper.Error(jsonRoot.ToString());
+//                    }
+//                    i++;
+//                }
+//                //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬�
+//                DBServiceHelper.Execute(Context, @"
+///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�')
+//");
+//                DBServiceHelper.Execute(Context, @"
+///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '榻愬' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�')
+//");
+//                sw.Stop();//缁撴潫璁℃椂
+//                LogHelper.Info("杩愯鎬绘椂闀匡細" + sw.Elapsed);
+//            }
+//            catch (Exception ex)
+//            {
+//                LogHelper.Error(ex.Message.ToString());
+//            }
+//        }
 
-        /// <summary>
-        /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴�
-        /// </summary>
-        public void DayPlanPPBomBill()
-        {
-            //閿佸畾鐨勬棩璁″垝涓嶇敓鎴�
-            try
-            {
-                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
-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_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
-"
-);
-                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
-                DataTable dt = ds.Tables[0];
-                List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>();
-                if (dt.Rows.Count > 0)
-                {
-                    foreach (DataRow dr in dt.Rows)
-                    {
-                        DayPlanMaterial.Add(new Demo.Model.Model.DayPlanMaterial
-                        {
-                            FID = dr["DayPlanFID"].ToString(),
-                            FEntryID = dr["FEntryID"].ToString(),
-                            FHDate = DateTime.Now.ToString(),
-                            FOrgId = dr["FORGNUMBER"].ToString(),
-                            FHMaterID = dr["FNUMBER"].ToString(),
-                            FHWorkDate = dr["FHMASTERDATE"].ToString(),
-                            FHQty = dr["FHQTY"].ToString(),
-                            FHUnitID = dr["FUNITNUMBER"].ToString(),
-                            FDayPlanFID = dr["FEntryID"].ToString(),
-                            FHMaterSubID = dr["FNUMBER2"].ToString(),
-                            FHUnitSubID = dr["FUNITNUMBER2"].ToString(),
-                            FHQtyMust = dr["FHQtyMust"].ToString(),
-                            FHQtySub = dr["FHQtyMust"].ToString(),
-                            FHPPBomInterID = dr["FPPBOM"].ToString(),
-                            FHPPBomEntryID = dr["FENTRYID"].ToString(),
-                            FHSourceID = dr["FHSOURCENUMBER"].ToString(),
-                            FNumerator = dr["FNumerator"].ToString(),
-                            FDenominator = dr["FDenominator"].ToString(),
-                            FFIXSCRAPQTY = dr["FFIXSCRAPQTY"].ToString(),
-                            FHQtyScrap = dr["FSCRAPRATE"].ToString(),
-                        });
-                    }
-                    var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList();
-                    foreach (var item in fidList)
-                    {
-                        var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList();
-                        JObject model = new JObject();
-                        model.Add("FHDate", DateTime.Now);
-                        model.Add("FOrgId", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FOrgId });//鍙戞枡缁勭粐
-                        model.Add("FHMaterID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHMaterID });//鐗╂枡
-                        model.Add("FHWorkDate", _DayPlanMaterial[0].FHWorkDate);//鏃ュ伐鍗曟棩鏈� FHWorkDate
-                        model.Add("FHQty", _DayPlanMaterial[0].FHQty);//涓讳骇鍝佹暟閲忥細FHQty 
-                        model.Add("FHUnitID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHUnitID });//鍗曚綅锛欶HUnitID 
-                        model.Add("FDayPlanFID", _DayPlanMaterial[0].FDayPlanFID);//鏃ヨ鍒掑伐鍗曞唴鐮� 
-                        JArray Entry = new JArray();
-                        foreach (var _item in _DayPlanMaterial)
-                        {
-                            JObject ModelEnty = new JObject();
-                            ModelEnty.Add("FHMaterSubID", new JObject() { ["Fnumber"] = _item.FHMaterSubID });//瀛愮墿鏂橣HMaterSubID
-                            ModelEnty.Add("FHUnitSubID", new JObject() { ["Fnumber"] = _item.FHUnitSubID });//鍗曚綅FHUnitSubID
-                            ModelEnty.Add("FHQtyMust", _item.FHQtyMust);//搴斿彂鏁伴噺FHQtyMust
-                            ModelEnty.Add("FHQtySub", _item.FHQtySub);//鏁伴噺FHQtySub
-                            ModelEnty.Add("FHPPBomInterID", _item.FHPPBomInterID);//鐢ㄦ枡娓呭崟涓诲唴鐮丗HPPBomInterID
-                            ModelEnty.Add("FHPPBomEntryID", _item.FHPPBomEntryID);//鐢ㄦ枡娓呭崟瀛愬唴鐮丗HPPBomEntryID
-                            ModelEnty.Add("FHSourceID", new JObject() { ["Fnumber"] = _item.FHSourceID });//鐢熶骇璧勬簮FHSourceID
-                            ModelEnty.Add("FNumerator", _item.FNumerator);//鍒嗘瘝
-                            ModelEnty.Add("FDenominator", _item.FDenominator);//鍒嗗瓙
-                            ModelEnty.Add("FDwyl", Convert.ToDecimal(_item.FNumerator) / Convert.ToDecimal(_item.FDenominator));//鍗曚綅鐢ㄦ枡
-                            ModelEnty.Add("FFIXSCRAPQTY", _item.FFIXSCRAPQTY);//鍥哄畾鎹熻��
-                            ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼%
-                            Entry.Add(ModelEnty);
-                        }
-                        model.Add("FEntity", Entry);
-                        if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
-                            model.Add("FID", _DayPlanMaterial[0].FID);
-                        JObject jsonRoot = new JObject()
-                        {
-                            ["Creator"] = "",
-                            ["NeedUpDateFields"] = new JArray(),
-                            ["NeedReturnFields"] = new JArray(),
-                            ["IsDeleteEntry"] = "true",
-                            ["SubSystemId"] = "",
-                            ["IsVerifyBaseDataField"] = "false",
-                            ["Model"] = model
-                        };
-                        var result = cloudClient.Save("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString());
-                        JObject saveObj = JObject.Parse(result);
-                        string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
-                        if (saveIsSuc != "TRUE")
-                            LogHelper.Error(saveIsSuc);
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                LogHelper.Error(ex.Message.ToString());
-            }
-        }
-        /// <summary>
-        /// 鎻愭枡璁″垝
-        /// </summary>
-        public void Extraction()
-        {
-            string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1");
-            DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
-            string FDayPlanWorkID = "";
-            foreach (DataRow dr in fidDt.Rows)
-            {
-                FDayPlanWorkID += Convert.ToString(dr["FID"]) + ",";
-            }
-            FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1);
-            //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺
-            sql = string.Format(@"
-  /*dialect*/
- exec [鎻愭枡璁″垝棰勫鐞哴 '{0}'
- ", FDayPlanWorkID.Replace(",", "-"));
+//        /// <summary>
+//        /// 鏃ヨ鍒掔敤鏂欐竻鍗曠敓鎴�
+//        /// </summary>
+//        public void DayPlanPPBomBill()
+//        {
+//            //閿佸畾鐨勬棩璁″垝涓嶇敓鎴�
+//            try
+//            {
+//                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
+//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_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
+//"
+//);
+//                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+//                DataTable dt = ds.Tables[0];
+//                List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>();
+//                if (dt.Rows.Count > 0)
+//                {
+//                    foreach (DataRow dr in dt.Rows)
+//                    {
+//                        DayPlanMaterial.Add(new Demo.Model.Model.DayPlanMaterial
+//                        {
+//                            FID = dr["DayPlanFID"].ToString(),
+//                            FEntryID = dr["FEntryID"].ToString(),
+//                            FHDate = DateTime.Now.ToString(),
+//                            FOrgId = dr["FORGNUMBER"].ToString(),
+//                            FHMaterID = dr["FNUMBER"].ToString(),
+//                            FHWorkDate = dr["FHMASTERDATE"].ToString(),
+//                            FHQty = dr["FHQTY"].ToString(),
+//                            FHUnitID = dr["FUNITNUMBER"].ToString(),
+//                            FDayPlanFID = dr["FEntryID"].ToString(),
+//                            FHMaterSubID = dr["FNUMBER2"].ToString(),
+//                            FHUnitSubID = dr["FUNITNUMBER2"].ToString(),
+//                            FHQtyMust = dr["FHQtyMust"].ToString(),
+//                            FHQtySub = dr["FHQtyMust"].ToString(),
+//                            FHPPBomInterID = dr["FPPBOM"].ToString(),
+//                            FHPPBomEntryID = dr["FENTRYID"].ToString(),
+//                            FHSourceID = dr["FHSOURCENUMBER"].ToString(),
+//                            FNumerator = dr["FNumerator"].ToString(),
+//                            FDenominator = dr["FDenominator"].ToString(),
+//                            FFIXSCRAPQTY = dr["FFIXSCRAPQTY"].ToString(),
+//                            FHQtyScrap = dr["FSCRAPRATE"].ToString(),
+//                        });
+//                    }
+//                    var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList();
+//                    foreach (var item in fidList)
+//                    {
+//                        var _DayPlanMaterial = DayPlanMaterial.Where(x => x.FEntryID == item).ToList();
+//                        JObject model = new JObject();
+//                        model.Add("FHDate", DateTime.Now);
+//                        model.Add("FOrgId", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FOrgId });//鍙戞枡缁勭粐
+//                        model.Add("FHMaterID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHMaterID });//鐗╂枡
+//                        model.Add("FHWorkDate", _DayPlanMaterial[0].FHWorkDate);//鏃ュ伐鍗曟棩鏈� FHWorkDate
+//                        model.Add("FHQty", _DayPlanMaterial[0].FHQty);//涓讳骇鍝佹暟閲忥細FHQty 
+//                        model.Add("FHUnitID", new JObject() { ["Fnumber"] = _DayPlanMaterial[0].FHUnitID });//鍗曚綅锛欶HUnitID 
+//                        model.Add("FDayPlanFID", _DayPlanMaterial[0].FDayPlanFID);//鏃ヨ鍒掑伐鍗曞唴鐮� 
+//                        JArray Entry = new JArray();
+//                        foreach (var _item in _DayPlanMaterial)
+//                        {
+//                            JObject ModelEnty = new JObject();
+//                            ModelEnty.Add("FHMaterSubID", new JObject() { ["Fnumber"] = _item.FHMaterSubID });//瀛愮墿鏂橣HMaterSubID
+//                            ModelEnty.Add("FHUnitSubID", new JObject() { ["Fnumber"] = _item.FHUnitSubID });//鍗曚綅FHUnitSubID
+//                            ModelEnty.Add("FHQtyMust", _item.FHQtyMust);//搴斿彂鏁伴噺FHQtyMust
+//                            ModelEnty.Add("FHQtySub", _item.FHQtySub);//鏁伴噺FHQtySub
+//                            ModelEnty.Add("FHPPBomInterID", _item.FHPPBomInterID);//鐢ㄦ枡娓呭崟涓诲唴鐮丗HPPBomInterID
+//                            ModelEnty.Add("FHPPBomEntryID", _item.FHPPBomEntryID);//鐢ㄦ枡娓呭崟瀛愬唴鐮丗HPPBomEntryID
+//                            ModelEnty.Add("FHSourceID", new JObject() { ["Fnumber"] = _item.FHSourceID });//鐢熶骇璧勬簮FHSourceID
+//                            ModelEnty.Add("FNumerator", _item.FNumerator);//鍒嗘瘝
+//                            ModelEnty.Add("FDenominator", _item.FDenominator);//鍒嗗瓙
+//                            ModelEnty.Add("FDwyl", Convert.ToDecimal(_item.FNumerator) / Convert.ToDecimal(_item.FDenominator));//鍗曚綅鐢ㄦ枡
+//                            ModelEnty.Add("FFIXSCRAPQTY", _item.FFIXSCRAPQTY);//鍥哄畾鎹熻��
+//                            ModelEnty.Add("FHQtyScrap", _item.FHQtyScrap);//鍙樺姩鎹熻�楃巼%
+//                            Entry.Add(ModelEnty);
+//                        }
+//                        model.Add("FEntity", Entry);
+//                        if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
+//                            model.Add("FID", _DayPlanMaterial[0].FID);
+//                        JObject jsonRoot = new JObject()
+//                        {
+//                            ["Creator"] = "",
+//                            ["NeedUpDateFields"] = new JArray(),
+//                            ["NeedReturnFields"] = new JArray(),
+//                            ["IsDeleteEntry"] = "true",
+//                            ["SubSystemId"] = "",
+//                            ["IsVerifyBaseDataField"] = "false",
+//                            ["Model"] = model
+//                        };
+//                        var result = cloudClient.Save("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString());
+//                        JObject saveObj = JObject.Parse(result);
+//                        string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+//                        if (saveIsSuc != "TRUE")
+//                            LogHelper.Error(saveIsSuc);
+//                    }
+//                }
+//            }
+//            catch (Exception ex)
+//            {
+//                LogHelper.Error(ex.Message.ToString());
+//            }
+//        }
+//        /// <summary>
+//        /// 鎻愭枡璁″垝
+//        /// </summary>
+//        public void Extraction()
+//        {
+//            string sql = string.Format(@"/*dialect*/ select t1.FID from Sc_WorkBillSortBillMain t1");
+//            DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+//            string FDayPlanWorkID = "";
+//            foreach (DataRow dr in fidDt.Rows)
+//            {
+//                FDayPlanWorkID += Convert.ToString(dr["FID"]) + ",";
+//            }
+//            FDayPlanWorkID = FDayPlanWorkID.Substring(0, FDayPlanWorkID.Length - 1);
+//            //鎻愭枡璁″垝棰勫鐞� 娓呯悊鎻愭枡璁″垝鍗曟暟鎹� 鏇存柊閲囪喘璁㈠崟鎻愭枡璁″垝鏁伴噺
+//            sql = string.Format(@"
+//  /*dialect*/
+// exec [鎻愭枡璁″垝棰勫鐞哴 '{0}'
+// ", FDayPlanWorkID.Replace(",", "-"));
 
-            DBServiceHelper.Execute(Context, sql);
-            //閲囪喘璁㈠崟鏁版嵁
-            sql = @"
- /*dialect*/
-select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS from t_PUR_POOrder t1
-join t_PUR_POOrderEntry t2 on t1.FID = t2.FID
-join t_BD_Supplier t3 on t1.FSUPPLIERID = t3.FSUPPLIERID
-join  T_PUR_POORDERENTRY_R t4 on t2.FENTRYID = t4.FENTRYID
-join T_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID
-where t2.FQTY-t2.FPODemandPlanCount>0
- and FCloseStatus in('A') and FMRPCLOSESTATUS in('A')
-";
-            List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>();
-            LogHelper.Info("閲囪喘璁㈠崟鏁版嵁" + sql);
+//            DBServiceHelper.Execute(Context, sql);
+//            //閲囪喘璁㈠崟鏁版嵁
+//            sql = @"
+// /*dialect*/
+//select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS from t_PUR_POOrder t1
+//join t_PUR_POOrderEntry t2 on t1.FID = t2.FID
+//join t_BD_Supplier t3 on t1.FSUPPLIERID = t3.FSUPPLIERID
+//join  T_PUR_POORDERENTRY_R t4 on t2.FENTRYID = t4.FENTRYID
+//join T_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID
+//where t2.FQTY-t2.FPODemandPlanCount>0
+// and FCloseStatus in('A') and FMRPCLOSESTATUS in('A')
+//";
+//            List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>();
+//            LogHelper.Info("閲囪喘璁㈠崟鏁版嵁" + sql);
 
-            sql = string.Format(@"
- /*dialect*/
- SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM  SC_WORKBILLSORTBILLMAIN T1 
-JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID
-LEFT JOIN(SELECT T1.FID,max(t2.FMATERIALID)FMATERIALIDMAIN, max(t2.FMoId)FMoId,MAX(FENTRYID) FENTRYID, SUM(convert(decimal(18, 2), FBASENUMERATOR / FBASEDENOMINATOR))FNeedQty, T1.FMATERIALID from T_PRD_PPBOMENTRY  T1
-JOIN T_PRD_PPBOM   T2 on t1.FID = t2.FID
-group by T1.FMATERIALID, T1.FID) T3 on T1.FPRDMOMAINID = t3.FMoId  and T1.FHMATERID = t3.FMATERIALIDMAIN
-JOIN T_BD_MATERIAL T6 ON T3.FMATERIALID = T6.FMATERIALID
-join t_BD_MaterialBase t4 on t3.FMATERIALID = t4.FMATERIALID
-join t_BD_MaterialPlan t5 on t3.FMATERIALID = t5.FMATERIALID
-WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
-AND FDayPlanQuantity>FCOMPLETECOUNT
-AND FERPCLSID=1 
- AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
-AND T1.FID in ({0}) 
-order by FHMASTERDATE
-", FDayPlanWorkID);
-            LogHelper.Info("鎻愭枡鏁版嵁" + sql);
-            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
-            List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
+//            sql = string.Format(@"
+// /*dialect*/
+// SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM  SC_WORKBILLSORTBILLMAIN T1 
+//JOIN SC_WORKBILLSORTBILLSUB T2 ON T1.FID=T2.FID
+//LEFT JOIN(SELECT T1.FID,max(t2.FMATERIALID)FMATERIALIDMAIN, max(t2.FMoId)FMoId,MAX(FENTRYID) FENTRYID, SUM(convert(decimal(18, 2), FBASENUMERATOR / FBASEDENOMINATOR))FNeedQty, T1.FMATERIALID from T_PRD_PPBOMENTRY  T1
+//JOIN T_PRD_PPBOM   T2 on t1.FID = t2.FID
+//group by T1.FMATERIALID, T1.FID) T3 on T1.FPRDMOMAINID = t3.FMoId  and T1.FHMATERID = t3.FMATERIALIDMAIN
+//JOIN T_BD_MATERIAL T6 ON T3.FMATERIALID = T6.FMATERIALID
+//join t_BD_MaterialBase t4 on t3.FMATERIALID = t4.FMATERIALID
+//join t_BD_MaterialPlan t5 on t3.FMATERIALID = t5.FMATERIALID
+//WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
+//AND FDayPlanQuantity>FCOMPLETECOUNT
+//AND FERPCLSID=1 
+// AND T2.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
+//AND T1.FID in ({0}) 
+//order by FHMASTERDATE
+//", FDayPlanWorkID);
+//            LogHelper.Info("鎻愭枡鏁版嵁" + sql);
+//            DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+//            List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>();
 
-            var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList();
-            var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "105773").ToList();
+//            var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList();
+//            var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "105773").ToList();
 
-            LogHelper.Info("鐗╂枡琛屾暟" + MaterialIDList.Count);
+//            LogHelper.Info("鐗╂枡琛屾暟" + MaterialIDList.Count);
 
-            //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚�
-            List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>();
-            //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲�
-            List<string> sqlList = new List<string>();
-            //MaterialIDList = new List<string> { "105773" };
-            foreach (var item in MaterialIDList)
-            {
-                LogHelper.Info(item.FMATERIALID.ToString());
-                List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList();
+//            //鎻愭枡璁″垝鏁版嵁闆嗕复鏃跺瓨鍌ㄩ泦鍚�
+//            List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>();
+//            //sql闆嗗悎 鏇存柊閲囪喘璁㈠崟鍗犵敤鐨勬彁鏂欒鍒掓暟閲�
+//            List<string> sqlList = new List<string>();
+//            //MaterialIDList = new List<string> { "105773" };
+//            foreach (var item in MaterialIDList)
+//            {
+//                LogHelper.Info(item.FMATERIALID.ToString());
+//                List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList();
 
-                decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//鏈�灏忚捣璁㈤噺
-                double FFIXLEADTIME = _DayPlanPpbom.FirstOrDefault().FFIXLEADTIME;//鎻愬墠鏈�
-                string FJITmaterialGroup = _DayPlanPpbom.FirstOrDefault().FJITmaterialGroup;//jit鐗╂枡鍒嗙被
-                string FJITMaterielDemand = _DayPlanPpbom.FirstOrDefault().FJITMaterielDemand; //JIT鐗╂枡闇�姹備緵璐у懆鏈�
-                string FJITSafeStock = _DayPlanPpbom.FirstOrDefault().FJITSafeStock; //JIT瀹夊叏搴撳瓨
-                decimal NeedQty = 0;
-                DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;
-                int i = 1;
-                //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID
-                List<int> FEntryIdList = new List<int>();
-                foreach (var _item in _DayPlanPpbom)
-                {
-                    if (NeedQty == 0)
-                        DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-FFIXLEADTIME);
-                    FEntryIdList.Add(_item.FENTRYID);
-                    NeedQty += _item.NeedQty;
-                    if ((FJITmaterialGroup == "鎬婚噺鎺у埗瑙勬牸绫�" || FJITmaterialGroup == "璁㈠崟涓撶敤涓�х被") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand)) //璁㈠崟涓撶敤涓�х被
-                        continue;
-                    if (NeedQty >= FMINPOQTY)
-                    {
-                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                        if (_PurchaseInventory.Count == 0)
-                        {
-                            NeedQty = 0;
-                            break;
-                        }
-                        foreach (var Purchase in _PurchaseInventory)
-                        {
-                            LogHelper.Info("Purchase");
-                            LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY);
-                            if (Purchase.FQTY >= NeedQty)
-                            {
-                                List<int> mmm = new List<int>();
-                                foreach (int id in FEntryIdList)
-                                {
-                                    mmm.Add(id);
-                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                                    {
-                                        FID = DayPlanPpbomls.FID,
-                                        FHMASTERDATE = DATE,
-                                        FQty = DayPlanPpbomls.NeedQty,
-                                        FBILLNO = DayPlanPpbomls.FBILLNO,
-                                        FENTRYID = DayPlanPpbomls.FENTRYID,
-                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                                        FNumber = DayPlanPpbomls.FNumber,
-                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                                        FFIXLEADTIME = FFIXLEADTIME,
+//                decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//鏈�灏忚捣璁㈤噺
+//                double FFIXLEADTIME = _DayPlanPpbom.FirstOrDefault().FFIXLEADTIME;//鎻愬墠鏈�
+//                string FJITmaterialGroup = _DayPlanPpbom.FirstOrDefault().FJITmaterialGroup;//jit鐗╂枡鍒嗙被
+//                string FJITMaterielDemand = _DayPlanPpbom.FirstOrDefault().FJITMaterielDemand; //JIT鐗╂枡闇�姹備緵璐у懆鏈�
+//                string FJITSafeStock = _DayPlanPpbom.FirstOrDefault().FJITSafeStock; //JIT瀹夊叏搴撳瓨
+//                decimal NeedQty = 0;
+//                DateTime DATE = _DayPlanPpbom.FirstOrDefault().FHMASTERDATE;
+//                int i = 1;
+//                //璁板綍鍦ㄦ渶灏忛噰璐噺闇�姹備笅鐨勬棩璁″垝鏄庣粏FentyrID
+//                List<int> FEntryIdList = new List<int>();
+//                foreach (var _item in _DayPlanPpbom)
+//                {
+//                    if (NeedQty == 0)
+//                        DATE = Convert.ToDateTime(_item.FHMASTERDATE).AddDays(-FFIXLEADTIME);
+//                    FEntryIdList.Add(_item.FENTRYID);
+//                    NeedQty += _item.NeedQty;
+//                    if ((FJITmaterialGroup == "鎬婚噺鎺у埗瑙勬牸绫�" || FJITmaterialGroup == "璁㈠崟涓撶敤涓�х被") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand)) //璁㈠崟涓撶敤涓�х被
+//                        continue;
+//                    if (NeedQty >= FMINPOQTY)
+//                    {
+//                        List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
+//                        if (_PurchaseInventory.Count == 0)
+//                        {
+//                            NeedQty = 0;
+//                            break;
+//                        }
+//                        foreach (var Purchase in _PurchaseInventory)
+//                        {
+//                            LogHelper.Info("Purchase");
+//                            LogHelper.Info("鐗╂枡锛�" + Purchase.FMATERIALID + ",鏁伴噺锛�" + Purchase.FQTY);
+//                            if (Purchase.FQTY >= NeedQty)
+//                            {
+//                                List<int> mmm = new List<int>();
+//                                foreach (int id in FEntryIdList)
+//                                {
+//                                    mmm.Add(id);
+//                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
+//                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+//                                    {
+//                                        FID = DayPlanPpbomls.FID,
+//                                        FHMASTERDATE = DATE,
+//                                        FQty = DayPlanPpbomls.NeedQty,
+//                                        FBILLNO = DayPlanPpbomls.FBILLNO,
+//                                        FENTRYID = DayPlanPpbomls.FENTRYID,
+//                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
+//                                        FNumber = DayPlanPpbomls.FNumber,
+//                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+//                                        FFIXLEADTIME = FFIXLEADTIME,
 
-                                        PurchseFID = Purchase.FID,
-                                        PurchseFentryID = Purchase.FENTRYID,
-                                        FSUPPLIERID = Purchase.FSUPPLIERID,
-                                        PurchseFNUMBER = Purchase.FNUMBER,
-                                        PurchseFBillNo = Purchase.FBillNo,
-                                        PurchseFqty = Purchase.FQTY,
-                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
-                                        FORGNumber = Purchase.FORGNumber
-                                    });
-                                    //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
-                                    DayPlanPpbomls.NeedQty = 0;
-                                }
-                                FEntryIdList.Clear();
-                                //鏇存柊閲囪喘璁㈠崟
-                                sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
-                                //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
-                                var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                                ls.FQTY -= NeedQty;
-                                break;
-                            }
-                            else
-                            {
-                                NeedQty = NeedQty - Purchase.FQTY;
-                                decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
-                                List<int> mmm = new List<int>();
-                                foreach (int id in FEntryIdList)
-                                {
-                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                                    decimal Qty = DayPlanPpbomls.NeedQty;
-                                    if (Qty > _NeedQty)
-                                        Qty = _NeedQty;
-                                    _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
-                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                                    {
-                                        FID = DayPlanPpbomls.FID,
-                                        FHMASTERDATE = DATE,
-                                        FQty = Qty,
-                                        FBILLNO = DayPlanPpbomls.FBILLNO,
-                                        FENTRYID = DayPlanPpbomls.FENTRYID,
-                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                                        FNumber = DayPlanPpbomls.FNumber,
-                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                                        FFIXLEADTIME = FFIXLEADTIME,
+//                                        PurchseFID = Purchase.FID,
+//                                        PurchseFentryID = Purchase.FENTRYID,
+//                                        FSUPPLIERID = Purchase.FSUPPLIERID,
+//                                        PurchseFNUMBER = Purchase.FNUMBER,
+//                                        PurchseFBillNo = Purchase.FBillNo,
+//                                        PurchseFqty = Purchase.FQTY,
+//                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
+//                                        FORGNumber = Purchase.FORGNumber
+//                                    });
+//                                    //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
+//                                    DayPlanPpbomls.NeedQty = 0;
+//                                }
+//                                FEntryIdList.Clear();
+//                                //鏇存柊閲囪喘璁㈠崟
+//                                sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
+//                                //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
+//                                var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
+//                                ls.FQTY -= NeedQty;
+//                                break;
+//                            }
+//                            else
+//                            {
+//                                NeedQty = NeedQty - Purchase.FQTY;
+//                                decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
+//                                List<int> mmm = new List<int>();
+//                                foreach (int id in FEntryIdList)
+//                                {
+//                                    var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
+//                                    decimal Qty = DayPlanPpbomls.NeedQty;
+//                                    if (Qty > _NeedQty)
+//                                        Qty = _NeedQty;
+//                                    _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
+//                                    PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+//                                    {
+//                                        FID = DayPlanPpbomls.FID,
+//                                        FHMASTERDATE = DATE,
+//                                        FQty = Qty,
+//                                        FBILLNO = DayPlanPpbomls.FBILLNO,
+//                                        FENTRYID = DayPlanPpbomls.FENTRYID,
+//                                        FMATERIALID = DayPlanPpbomls.FMATERIALID,
+//                                        FNumber = DayPlanPpbomls.FNumber,
+//                                        OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+//                                        FFIXLEADTIME = FFIXLEADTIME,
 
-                                        PurchseFID = Purchase.FID,
-                                        PurchseFentryID = Purchase.FENTRYID,
-                                        FSUPPLIERID = Purchase.FSUPPLIERID,
-                                        PurchseFNUMBER = Purchase.FNUMBER,
-                                        PurchseFBillNo = Purchase.FBillNo,
-                                        PurchseFqty = Purchase.FQTY,
-                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
-                                        FORGNumber = Purchase.FORGNumber
-                                    });
-                                    DayPlanPpbomls.NeedQty -= Qty;
-                                    //鏇存柊閲囪喘璁㈠崟
-                                    sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}");
-                                    //鏇存柊Model
-                                    var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                                    ls.FQTY -= Qty;
-                                    if (_NeedQty < 0)
-                                    {
-                                        foreach (var mm in mmm)
-                                        {
-                                            FEntryIdList.Remove(mm);
-                                        }
-                                        break;
-                                    }
-                                    mmm.Add(id);
-                                }
-                                foreach (var mm in mmm)
-                                {
-                                    FEntryIdList.Remove(mm);
-                                }
-                            }
-                        }
-                        NeedQty = 0;
-                    }
+//                                        PurchseFID = Purchase.FID,
+//                                        PurchseFentryID = Purchase.FENTRYID,
+//                                        FSUPPLIERID = Purchase.FSUPPLIERID,
+//                                        PurchseFNUMBER = Purchase.FNUMBER,
+//                                        PurchseFBillNo = Purchase.FBillNo,
+//                                        PurchseFqty = Purchase.FQTY,
+//                                        FStockOrgId = Purchase.FStockOrgId, //閲囪喘缁勭粐
+//                                        FORGNumber = Purchase.FORGNumber
+//                                    });
+//                                    DayPlanPpbomls.NeedQty -= Qty;
+//                                    //鏇存柊閲囪喘璁㈠崟
+//                                    sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}");
+//                                    //鏇存柊Model
+//                                    var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
+//                                    ls.FQTY -= Qty;
+//                                    if (_NeedQty < 0)
+//                                    {
+//                                        foreach (var mm in mmm)
+//                                        {
+//                                            FEntryIdList.Remove(mm);
+//                                        }
+//                                        break;
+//                                    }
+//                                    mmm.Add(id);
+//                                }
+//                                foreach (var mm in mmm)
+//                                {
+//                                    FEntryIdList.Remove(mm);
+//                                }
+//                            }
+//                        }
+//                        NeedQty = 0;
+//                    }
 
-                    #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
-                    //else if (i == _DayPlanPpbom.Count && NeedQty > 0)
-                    //{
-                    //    NeedQty = FMINPOQTY;
-                    //    List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
-                    //    if (_PurchaseInventory.Count == 0)
-                    //    {
-                    //        NeedQty = 0;
-                    //        break;
-                    //    }
+//                    #region 鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
+//                    //鍓╀笅涓嶈冻鏃舵寜鏈�灏忛噰璐壒娆$敓鎴�
+//                    //else if (i == _DayPlanPpbom.Count && NeedQty > 0)
+//                    //{
+//                    //    NeedQty = FMINPOQTY;
+//                    //    List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).ToList();
+//                    //    if (_PurchaseInventory.Count == 0)
+//                    //    {
+//                    //        NeedQty = 0;
+//                    //        break;
+//                    //    }
 
-                    //    foreach (var Purchase in _PurchaseInventory)
-                    //    {
-                    //        if (Purchase.FQTY >= NeedQty)
-                    //        {
+//                    //    foreach (var Purchase in _PurchaseInventory)
+//                    //    {
+//                    //        if (Purchase.FQTY >= NeedQty)
+//                    //        {
 
-                    //            List<int> mmm = new List<int>();
-                    //            foreach (int id in FEntryIdList)
-                    //            {
-                    //                mmm.Add(id);
-                    //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                    //                {
-                    //                    FID = DayPlanPpbomls.FID,
-                    //                    FHMASTERDATE = DATE,
-                    //                    FQty = DayPlanPpbomls.NeedQty,
-                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
-                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
-                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                    //                    FNumber = DayPlanPpbomls.FNumber,
-                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                    //                    FFIXLEADTIME = FFIXLEADTIME,
+//                    //            List<int> mmm = new List<int>();
+//                    //            foreach (int id in FEntryIdList)
+//                    //            {
+//                    //                mmm.Add(id);
+//                    //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
+//                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+//                    //                {
+//                    //                    FID = DayPlanPpbomls.FID,
+//                    //                    FHMASTERDATE = DATE,
+//                    //                    FQty = DayPlanPpbomls.NeedQty,
+//                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
+//                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
+//                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
+//                    //                    FNumber = DayPlanPpbomls.FNumber,
+//                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+//                    //                    FFIXLEADTIME = FFIXLEADTIME,
 
-                    //                    PurchseFID = Purchase.FID,
-                    //                    PurchseFentryID = Purchase.FENTRYID,
-                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
-                    //                    PurchseFNUMBER = Purchase.FNUMBER,
-                    //                    PurchseFBillNo = Purchase.FBillNo,
-                    //                    PurchseFqty = Purchase.FQTY
+//                    //                    PurchseFID = Purchase.FID,
+//                    //                    PurchseFentryID = Purchase.FENTRYID,
+//                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
+//                    //                    PurchseFNUMBER = Purchase.FNUMBER,
+//                    //                    PurchseFBillNo = Purchase.FBillNo,
+//                    //                    PurchseFqty = Purchase.FQTY
 
-                    //                });
-                    //                //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
-                    //                DayPlanPpbomls.NeedQty = 0;
-                    //            }
-                    //            FEntryIdList.Clear();
-                    //            //鏇存柊閲囪喘璁㈠崟
-                    //            sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
-                    //            //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
-                    //            var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                    //            ls.FQTY -= NeedQty;
-                    //            break;
-                    //        }
-                    //        else
-                    //        {
-                    //            NeedQty = NeedQty - Purchase.FQTY;
-                    //            decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
-                    //            List<int> mmm = new List<int>();
-                    //            foreach (int id in FEntryIdList)
-                    //            {
+//                    //                });
+//                    //                //鎵i櫎鏃ヨ鍒掓槑缁嗗凡琚垎閰嶇殑鏁伴噺
+//                    //                DayPlanPpbomls.NeedQty = 0;
+//                    //            }
+//                    //            FEntryIdList.Clear();
+//                    //            //鏇存柊閲囪喘璁㈠崟
+//                    //            sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount  =isnull(FPODemandPlanCount,0)+  '{NeedQty}' where FENTRYID = {Purchase.FENTRYID}");
+//                    //            //鎵i櫎褰撳墠琛屽搴旈噰璐鍗曟暟閲�
+//                    //            var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
+//                    //            ls.FQTY -= NeedQty;
+//                    //            break;
+//                    //        }
+//                    //        else
+//                    //        {
+//                    //            NeedQty = NeedQty - Purchase.FQTY;
+//                    //            decimal _NeedQty = Purchase.FQTY;//閲囪喘璁㈠崟鏁伴噺
+//                    //            List<int> mmm = new List<int>();
+//                    //            foreach (int id in FEntryIdList)
+//                    //            {
 
-                    //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
-                    //                decimal Qty = DayPlanPpbomls.NeedQty;
-                    //                if (Qty > _NeedQty)
-                    //                    Qty = _NeedQty;
-                    //                _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
-                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
-                    //                {
-                    //                    FID = DayPlanPpbomls.FID,
-                    //                    FHMASTERDATE = DATE,
-                    //                    FQty = Qty,
-                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
-                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
-                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
-                    //                    FNumber = DayPlanPpbomls.FNumber,
-                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
-                    //                    FFIXLEADTIME = FFIXLEADTIME,
+//                    //                var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault();
+//                    //                decimal Qty = DayPlanPpbomls.NeedQty;
+//                    //                if (Qty > _NeedQty)
+//                    //                    Qty = _NeedQty;
+//                    //                _NeedQty = _NeedQty - DayPlanPpbomls.NeedQty;
+//                    //                PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp
+//                    //                {
+//                    //                    FID = DayPlanPpbomls.FID,
+//                    //                    FHMASTERDATE = DATE,
+//                    //                    FQty = Qty,
+//                    //                    FBILLNO = DayPlanPpbomls.FBILLNO,
+//                    //                    FENTRYID = DayPlanPpbomls.FENTRYID,
+//                    //                    FMATERIALID = DayPlanPpbomls.FMATERIALID,
+//                    //                    FNumber = DayPlanPpbomls.FNumber,
+//                    //                    OLDDATE = DayPlanPpbomls.FHMASTERDATE,
+//                    //                    FFIXLEADTIME = FFIXLEADTIME,
 
 
-                    //                    PurchseFID = Purchase.FID,
-                    //                    PurchseFentryID = Purchase.FENTRYID,
-                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
-                    //                    PurchseFNUMBER = Purchase.FNUMBER,
-                    //                    PurchseFBillNo = Purchase.FBillNo,
-                    //                    PurchseFqty = Purchase.FQTY
+//                    //                    PurchseFID = Purchase.FID,
+//                    //                    PurchseFentryID = Purchase.FENTRYID,
+//                    //                    FSUPPLIERID = Purchase.FSUPPLIERID,
+//                    //                    PurchseFNUMBER = Purchase.FNUMBER,
+//                    //                    PurchseFBillNo = Purchase.FBillNo,
+//                    //                    PurchseFqty = Purchase.FQTY
 
 
-                    //                });
-                    //                DayPlanPpbomls.NeedQty -= Qty;
-                    //                //鏇存柊閲囪喘璁㈠崟
-                    //                sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}");
+//                    //                });
+//                    //                DayPlanPpbomls.NeedQty -= Qty;
+//                    //                //鏇存柊閲囪喘璁㈠崟
+//                    //                sqlList.Add($"/*dialect*/ update t_PUR_POOrderEntry set FPODemandPlanCount = isnull(FPODemandPlanCount,0)+ '{Qty}' where FENTRYID = {Purchase.FENTRYID}");
 
-                    //                //鏇存柊Model
-                    //                var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
-                    //                ls.FQTY -= Qty;
+//                    //                //鏇存柊Model
+//                    //                var ls = PurchaseInventory.Where(c => c.FENTRYID == Purchase.FENTRYID).FirstOrDefault();
+//                    //                ls.FQTY -= Qty;
 
-                    //                if (_NeedQty < 0)
-                    //                {
-                    //                    foreach (var mm in mmm)
-                    //                    {
-                    //                        FEntryIdList.Remove(mm);
-                    //                    }
-                    //                    break;
-                    //                }
+//                    //                if (_NeedQty < 0)
+//                    //                {
+//                    //                    foreach (var mm in mmm)
+//                    //                    {
+//                    //                        FEntryIdList.Remove(mm);
+//                    //                    }
+//                    //                    break;
+//                    //                }
 
-                    //                mmm.Add(id);
-                    //            }
-                    //            foreach (var mm in mmm)
-                    //            {
-                    //                FEntryIdList.Remove(mm);
-                    //            }
+//                    //                mmm.Add(id);
+//                    //            }
+//                    //            foreach (var mm in mmm)
+//                    //            {
+//                    //                FEntryIdList.Remove(mm);
+//                    //            }
 
-                    //        }
-                    //    }
-                    //    NeedQty = 0;
-                    //}
-                    #endregion
-                    i++;
-                }
-            }
-            var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
-            var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
-            foreach (var item in PODemandPlanList)
-            {
-                DateTime date = item.FHMASTERDATE;
-                string PurchseFNUMBER = item.PurchseFNUMBER;
-                JObject model = new JObject();
-                model.Add("FHDate", date);
-                model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿");
-                model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER });
-                JArray Fentity = new JArray();
-                List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList();
-                foreach (var _item in _PODemandPlanList)
-                {
-                    JObject FentityModel = new JObject();
-                    FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
-                    FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡
-                    FentityModel.Add("FHQty", _item.FQty);//鏁伴噺
-                    FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID
-                    FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID
-                    FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙�
-                    FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨�
-                    FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨�
-                    FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺
-                    FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈�
+//                    //        }
+//                    //    }
+//                    //    NeedQty = 0;
+//                    //}
+//                    #endregion
+//                    i++;
+//                }
+//            }
+//            var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
+//            var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList();
+//            foreach (var item in PODemandPlanList)
+//            {
+//                DateTime date = item.FHMASTERDATE;
+//                string PurchseFNUMBER = item.PurchseFNUMBER;
+//                JObject model = new JObject();
+//                model.Add("FHDate", date);
+//                model.Add("FHRemark", "鐢熶骇璁㈠崟鍙凤細" + "娴嬭瘯鍛㈠憿");
+//                model.Add("FSupplierID", new JObject() { ["Fnumber"] = PurchseFNUMBER });
+//                JArray Fentity = new JArray();
+//                List<PODemandPlanTemp> _PODemandPlanList = PODemandPlanTemp.Where(x => x.FHMASTERDATE == date && x.PurchseFNUMBER == PurchseFNUMBER).ToList();
+//                foreach (var _item in _PODemandPlanList)
+//                {
+//                    JObject FentityModel = new JObject();
+//                    FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
+//                    FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = _item.FNumber });//鐗╂枡
+//                    FentityModel.Add("FHQty", _item.FQty);//鏁伴噺
+//                    FentityModel.Add("FHSourceInterID", _item.FID);//鏃ヨ鍒掑伐鍗旻ID
+//                    FentityModel.Add("FHSourceEntryID", _item.FENTRYID);//鏃ヨ鍒掑伐鍗旻ENTRYID
+//                    FentityModel.Add("FHSourceBillNo", _item.FBILLNO);//鏃ヨ鍒掑伐鍗曞崟鍙�
+//                    FentityModel.Add("FHSourceBillType", "");//鏃ヨ鍒掑伐鍗曠被鍨�
+//                    FentityModel.Add("FDayPlanDate", _item.OLDDATE);//鏃ヨ鍒掑伐鍗曠被鍨�
+//                    FentityModel.Add("FHRelationQty", _item.PurchseFqty);//鍏宠仈鏁伴噺
+//                    FentityModel.Add("FFIXLEADTIME", _item.FFIXLEADTIME);//鎻愬墠鏈�
 
-                    FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
-                    FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
-                    FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
-                    FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
-                    Fentity.Add(FentityModel);
-                }
-                model.Add("FEntity", Fentity);
-                JObject jsonRoot = new JObject()
-                {
-                    ["Creator"] = "",
-                    ["NeedUpDateFields"] = new JArray(),
-                    ["NeedReturnFields"] = new JArray(),
-                    ["IsDeleteEntry"] = "false",
-                    ["SubSystemId"] = "",
-                    ["IsVerifyBaseDataField"] = "false",
-                    ["Model"] = model
-                };
-                var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
-                JObject saveObj = JObject.Parse(result);
-                string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
-                LogHelper.Info("鏈�鍚�");
-                LogHelper.Info(jsonRoot.ToString());
-                if (saveIsSuc != "TRUE")
-                    LogHelper.Error(saveIsSuc);
-            }
-            DBServiceHelper.ExecuteBatch(Context, sqlList);
-        }
-    }
-}
+//                    FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = _item.FORGNumber });//閲囪喘缁勭粐
+//                    FentityModel.Add("FHPOOrderInterID", _item.PurchseFID);// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+//                    FentityModel.Add("FHPOOrderEntryID", _item.PurchseFentryID); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+//                    FentityModel.Add("FHPOOrderBillNo", _item.PurchseFBillNo); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+//                    Fentity.Add(FentityModel);
+//                }
+//                model.Add("FEntity", Fentity);
+//                JObject jsonRoot = new JObject()
+//                {
+//                    ["Creator"] = "",
+//                    ["NeedUpDateFields"] = new JArray(),
+//                    ["NeedReturnFields"] = new JArray(),
+//                    ["IsDeleteEntry"] = "false",
+//                    ["SubSystemId"] = "",
+//                    ["IsVerifyBaseDataField"] = "false",
+//                    ["Model"] = model
+//                };
+//                var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
+//                JObject saveObj = JObject.Parse(result);
+//                string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+//                LogHelper.Info("鏈�鍚�");
+//                LogHelper.Info(jsonRoot.ToString());
+//                if (saveIsSuc != "TRUE")
+//                    LogHelper.Error(saveIsSuc);
+//            }
+//            DBServiceHelper.ExecuteBatch(Context, sqlList);
+//        }
+//    }
+//}
diff --git a/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanPPBomBillTimeTask.cs b/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanPPBomBillTimeTask.cs
index bef3380..79292d3 100644
--- a/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanPPBomBillTimeTask.cs
+++ b/src/BLL/Demo.TimedTaskPlugIn/PRD/DayPlanPPBomBillTimeTask.cs
@@ -9,7 +9,7 @@
 using System;
 using Kingdee.BOS.Util;
 using System.Linq;
-using ZD.Cloud.WebApi;
+using Demo.Utility;
 
 namespace Demo.TimedTaskPlugIn.PRD
 {
@@ -19,7 +19,7 @@
     {
         public void Run(Context ctx, Schedule schedule)
         {
-            CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+            CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
             try
             {
                 string sql = string.Format(@"
diff --git a/src/BLL/Demo.TimedTaskPlugIn/PRD/StockChangeDynamicAlignment.cs b/src/BLL/Demo.TimedTaskPlugIn/PRD/StockChangeDynamicAlignment.cs
index b8f3e36..c913233 100644
--- a/src/BLL/Demo.TimedTaskPlugIn/PRD/StockChangeDynamicAlignment.cs
+++ b/src/BLL/Demo.TimedTaskPlugIn/PRD/StockChangeDynamicAlignment.cs
@@ -9,7 +9,6 @@
 using System;
 using Kingdee.BOS.Util;
 using System.Linq;
-using ZD.Cloud.WebApi;
 using Demo.Model.Model;
 using Demo.Model.Model.PODemandPlan;
 using System.Diagnostics;
@@ -18,6 +17,7 @@
 using Kingdee.K3.Core.SCM.STK;
 using Kingdee.BOS.Orm.DataEntity;
 using Kingdee.K3.SCM.ServiceHelper;
+using Demo.Utility;
 
 namespace Demo.TimedTaskPlugIn.PRD
 {
@@ -25,7 +25,7 @@
     [HotUpdate]
     public class StockChangeDynamicAlignment : Kingdee.BOS.Contracts.IScheduleService
     {
-        CloudClient cloudClient = new CloudClient("http://localhost/K3Cloud/");
+        CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
         public Context Context;
         List<PRD_Inventory> ListInventory;//搴撳瓨鏄庣粏
         List<PRD_Inventory> ListInventoryByStockOrgId;//鐗╂枡鎬诲簱瀛�
diff --git a/src/BLL/Demo.TimedTaskPlugIn/packages.config b/src/BLL/Demo.TimedTaskPlugIn/packages.config
index 6660b02..1b80aa8 100644
--- a/src/BLL/Demo.TimedTaskPlugIn/packages.config
+++ b/src/BLL/Demo.TimedTaskPlugIn/packages.config
@@ -3,7 +3,6 @@
   <package id="log4net" version="1.2.10" targetFramework="net472" />
   <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net472" />
   <package id="ZD.Cloud.Logger" version="1.1.0" targetFramework="net472" />
-  <package id="ZD.Cloud.WebApi" version="7.3.2.3" targetFramework="net472" />
   <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" />
   <package id="ZD.Share" version="1.0.3" targetFramework="net472" />
 </packages>
\ No newline at end of file
diff --git a/src/BLL/Demo.Utility/CloudClient.cs b/src/BLL/Demo.Utility/CloudClient.cs
new file mode 100644
index 0000000..9df6bb6
--- /dev/null
+++ b/src/BLL/Demo.Utility/CloudClient.cs
@@ -0,0 +1,60 @@
+锘縰sing Kingdee.BOS.WebApi.Client;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Demo.Utility
+{
+    public class CloudClient : K3CloudApiClient
+    {
+        public const string KDApiUrl = "http://localhost//k3cloud/";
+        public CloudClient(string serverUrl = KDApiUrl) : base(serverUrl)
+        {
+            var dbId =  GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+            var useName =  GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+            var pwd =  GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+            //var url = GetKey(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "/kdapi.config", "KDApiUrl");
+            var loginResult = ValidateLogin(dbId, useName, pwd, 2052);
+            var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
+            //鐧诲綍缁撴灉绫诲瀷绛変簬1锛屼唬琛ㄧ櫥褰曟垚鍔�
+            if (resultType != 1)
+            {
+                throw new Exception("鐧诲綍澶辫触锛�");
+            }
+        }
+
+        public CloudClient(string serverUrl = KDApiUrl, int timeout = 3600) : base(serverUrl, timeout)
+        {
+            var dbId =  GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+            var useName =  GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+            var pwd =  GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+            //var url = GetKey(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "/kdapi.config", "KDApiUrl");
+            var loginResult = ValidateLogin(dbId, useName, pwd, 2052);
+            var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
+            //鐧诲綍缁撴灉绫诲瀷绛変簬1锛屼唬琛ㄧ櫥褰曟垚鍔�
+            if (resultType != 1)
+            {
+                throw new Exception("鐧诲綍澶辫触锛�");
+            }
+        }
+
+        public static String GetConfigKey(String configPath, String key)
+        {
+            Configuration ConfigurationInstance = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
+            {
+                ExeConfigFilename = configPath
+            }, ConfigurationUserLevel.None);
+
+
+            if (ConfigurationInstance.AppSettings.Settings[key] != null)
+                return ConfigurationInstance.AppSettings.Settings[key].Value;
+            else
+
+                return string.Empty;
+        }
+    }
+}
diff --git a/src/BLL/Demo.Utility/Demo.Utility.csproj b/src/BLL/Demo.Utility/Demo.Utility.csproj
index b0dc0d8..27b5b29 100644
--- a/src/BLL/Demo.Utility/Demo.Utility.csproj
+++ b/src/BLL/Demo.Utility/Demo.Utility.csproj
@@ -9,9 +9,10 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>Demo.Utility</RootNamespace>
     <AssemblyName>Demo.Utility</AssemblyName>
-    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <Deterministic>true</Deterministic>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -37,6 +38,12 @@
     <Reference Include="ICSharpCode.SharpZipLib, Version=1.2.0.246, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
+    <Reference Include="Kingdee.BOS.WebApi.Client">
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢\Kingdee.BOS.WebApi.Client.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\..\..\packages\ZD.Newtonsoft.Json.1.0.0\lib\Newtonsoft.Json.dll</HintPath>
+    </Reference>
     <Reference Include="NPOI, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\NPOI.2.5.1\lib\net45\NPOI.dll</HintPath>
     </Reference>
@@ -50,6 +57,7 @@
       <HintPath>..\..\..\packages\NPOI.2.5.1\lib\net45\NPOI.OpenXmlFormats.dll</HintPath>
     </Reference>
     <Reference Include="System" />
+    <Reference Include="System.Configuration" />
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.Web" />
@@ -62,6 +70,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="CloudClient.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
diff --git a/src/BLL/Demo.Utility/packages.config b/src/BLL/Demo.Utility/packages.config
index ffcc8bc..d590a1f 100644
--- a/src/BLL/Demo.Utility/packages.config
+++ b/src/BLL/Demo.Utility/packages.config
@@ -3,4 +3,5 @@
   <package id="NPOI" version="2.5.1" targetFramework="net472" />
   <package id="Portable.BouncyCastle" version="1.8.6" targetFramework="net472" />
   <package id="SharpZipLib" version="1.2.0" targetFramework="net472" />
+  <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" />
 </packages>
\ No newline at end of file
diff --git a/src/ProductizationTemplate/Config/kdapi.config b/src/ProductizationTemplate/Config/kdapi.config
deleted file mode 100644
index 25b63df..0000000
--- a/src/ProductizationTemplate/Config/kdapi.config
+++ /dev/null
@@ -1,9 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8" ?>
-<configuration>
-	<appSettings>
-		<add key="DbId" value="5e8c33972fbb61"></add>
-		<add key="UserName" value="Administrator"></add>
-		<add key="PassWord" value="888888"></add>
-		<add key="KDApiUrl" value="http://localhost/K3Cloud/"></add>
-	</appSettings>
-</configuration>
\ No newline at end of file
diff --git a/src/ProductizationTemplate/Constants/Url.cs b/src/ProductizationTemplate/Constants/Url.cs
index 8e61bd8..d00e54a 100644
--- a/src/ProductizationTemplate/Constants/Url.cs
+++ b/src/ProductizationTemplate/Constants/Url.cs
@@ -14,7 +14,7 @@
         /// 
 
 #if DEBUG
-        public const string KDApiUrl = "http://localhost/K3Cloud/";
+        public const string KDApiUrl = "http://localhost//k3cloud/";
 #else
         public const string KDApiUrl = "http://192.168.0.2/K3Cloud/";
         public const string OMSAccount = "xherp";
diff --git a/src/ProductizationTemplate/ProductizationTemplate.csproj b/src/ProductizationTemplate/ProductizationTemplate.csproj
index f4083cc..63e7cca 100644
--- a/src/ProductizationTemplate/ProductizationTemplate.csproj
+++ b/src/ProductizationTemplate/ProductizationTemplate.csproj
@@ -84,11 +84,9 @@
     <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath>
     </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath>
-    </Reference>
-    <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.3.1150.7, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath>
+    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2003.9, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>C:\Users\14027\Desktop\鏈�鏂扮増bin鏂囦欢3.16\Kingdee.BOS.WebApi.Client.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath>
@@ -138,9 +136,6 @@
     <Reference Include="ZD.Cloud.Logger, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\packages\ZD.Cloud.Logger.1.1.0\lib\net40\ZD.Cloud.Logger.dll</HintPath>
     </Reference>
-    <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\..\packages\ZD.Cloud.WebApi.7.3.2.3\lib\net452\ZD.Cloud.WebApi.dll</HintPath>
-    </Reference>
     <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\packages\ZD.Share.1.0.2\lib\net452\ZD.Share.dll</HintPath>
     </Reference>
@@ -173,7 +168,6 @@
       <Link>.editorconfig</Link>
     </None>
     <None Include="app.config" />
-    <None Include="Config\kdapi.config" />
     <None Include="packages.config" />
   </ItemGroup>
   <ItemGroup>
diff --git a/src/ProductizationTemplate/Untity/CloudClient.cs b/src/ProductizationTemplate/Untity/CloudClient.cs
index 4f77e00..9bbd29d 100644
--- a/src/ProductizationTemplate/Untity/CloudClient.cs
+++ b/src/ProductizationTemplate/Untity/CloudClient.cs
@@ -1,23 +1,19 @@
-锘縰sing Kingdee.BOS.WebApi.Client;
-using Newtonsoft.Json.Linq;
+锘縰sing Newtonsoft.Json.Linq;
 using XhOA.Constants;
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using Kingdee.BOS.WebApi.Client;
 
 namespace XhOA.Untity
 {
     public class CloudClient : K3CloudApiClient
     {
 #if DEBUG
-        public const string DbId = "5df2f8e7f1848b";//MDM
+        public const string DbId = " ";//MDM
 #else
         public const string DbId = "5ce8f62da69d38";
 #endif
         public const string UserName = "Administrator";
-        public const string PassWord = "Xhgj1234";
+        public const string PassWord = "888888";
         public CloudClient(string serverUrl = Url.KDApiUrl) : base(serverUrl)
         {
             var loginResult = ValidateLogin(DbId, UserName, PassWord, 2052);
diff --git a/src/ProductizationTemplate/packages.config b/src/ProductizationTemplate/packages.config
index 164f68d..095c4ed 100644
--- a/src/ProductizationTemplate/packages.config
+++ b/src/ProductizationTemplate/packages.config
@@ -4,7 +4,6 @@
   <package id="RestSharp" version="106.11.4" targetFramework="net452" />
   <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net452" />
   <package id="ZD.Cloud.Logger" version="1.1.0" targetFramework="net452" />
-  <package id="ZD.Cloud.WebApi" version="7.3.2.3" targetFramework="net452" />
   <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net452" />
   <package id="ZD.Share" version="1.0.2" targetFramework="net452" />
 </packages>
\ No newline at end of file

--
Gitblit v1.9.1