From 8f8bf1c2419cd76bcc2be603132336c25138b96b Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期三, 03 二月 2021 11:54:40 +0800
Subject: [PATCH] 正确答案

---
 src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs |   14 +++-
 src/BLL/Demo.BillView/Demo.BillView.csproj              |   10 +++
 src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs     |   58 +++++++++++++++++++
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs       |   62 +++++++++++---------
 4 files changed, 111 insertions(+), 33 deletions(-)

diff --git a/src/BLL/Demo.BillView/Demo.BillView.csproj b/src/BLL/Demo.BillView/Demo.BillView.csproj
index a0deb39..a549c47 100644
--- a/src/BLL/Demo.BillView/Demo.BillView.csproj
+++ b/src/BLL/Demo.BillView/Demo.BillView.csproj
@@ -110,8 +110,17 @@
     <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>
     </Reference>
+    <Reference Include="Kingdee.K3.BD.ServiceHelper">
+      <HintPath>..\..\..\..\..\鍔炲叕\K3Cloud\WebSite\bin\Kingdee.K3.BD.ServiceHelper.dll</HintPath>
+    </Reference>
     <Reference Include="Kingdee.K3.Core, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="Kingdee.K3.MFG.Common.BusinessEntity">
+      <HintPath>..\..\..\..\..\鍔炲叕\K3Cloud\WebSite\bin\Kingdee.K3.MFG.Common.BusinessEntity.dll</HintPath>
+    </Reference>
+    <Reference Include="Kingdee.K3.MFG.ServiceHelper">
+      <HintPath>..\..\..\..\..\鍔炲叕\K3Cloud\WebSite\bin\Kingdee.K3.MFG.ServiceHelper.dll</HintPath>
     </Reference>
     <Reference Include="Kingdee.K3.Mobile.Business.PlugIn, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.Mobile.Business.PlugIn.dll</HintPath>
@@ -195,6 +204,7 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="PRD\LogService.cs" />
+    <Compile Include="PRD\PODemandPlanListFilter.cs" />
     <Compile Include="PRD\PODemandPlanListLoad.cs" />
     <Compile Include="PRD\ProTardinessDetails.cs" />
     <Compile Include="PRD\ProCompleteAnalysisMateriel.cs" />
diff --git a/src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs b/src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs
new file mode 100644
index 0000000..91bfb29
--- /dev/null
+++ b/src/BLL/Demo.BillView/PRD/PODemandPlanListFilter.cs
@@ -0,0 +1,58 @@
+锘縰sing Kingdee.BOS.Orm.DataEntity;
+using Kingdee.K3.Core.MFG.EntityHelper;
+using System.ComponentModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Kingdee.BOS.Core.Bill.PlugIn;
+using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Kingdee.K3.Core.BD.ServiceArgs;
+using Kingdee.K3.MFG.Common.BusinessEntity.PRD;
+using Kingdee.K3.BD.ServiceHelper;
+using Kingdee.K3.Core.BD;
+using Kingdee.BOS.Core.List.PlugIn;
+using Kingdee.BOS.Orm;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.Log;
+using Kingdee.K3.Core.MFG;
+using Kingdee.BOS.Core.SqlBuilder;
+using Kingdee.BOS.Core.Metadata;
+using Kingdee.K3.MFG.ServiceHelper;
+using Kingdee.BOS;
+
+namespace Demo.BillView.PRD
+{
+    [Description("鎻愭枡璁″垝鍒楄〃杩囨护")]
+    [HotUpdate]
+
+    public class PODemandPlanListFilter : AbstractListPlugIn
+    {
+        public override void PrepareFilterParameter(global::Kingdee.BOS.Core.List.PlugIn.Args.FilterArgs e)
+        {
+            base.PrepareFilterParameter(e);
+            //濡傛灉杩囨护鏉′欢鍚湁鏈�鏂扮粨鏋滃叧閿瓧锛屽垯鍦ㄦ鍩虹涓婂鐞嗭紝浠ユ敮鎸佹渶鏂扮粨鏋滃唴缃柟妗堝彟瀛樺鍔犳潯浠�(鍏抽敭瀛楁槸鏍规嵁鐢熶骇璁㈠崟鐘舵�佽繃婊�)
+            if (e.FilterString.IsNullOrEmptyOrWhiteSpace())
+            {
+                int FSupplierId = GetSupplierId();
+                if (FSupplierId > 0)
+                    e.FilterString = " FSUPPLIERID IN (102629)";
+            }
+            else
+            {
+                int FSupplierId = GetSupplierId();
+                if (FSupplierId > 0)
+                    e.FilterString += " AND FSUPPLIERID IN (102629)";
+            }
+        }
+        public int GetSupplierId()
+        {
+            long userId = this.Context.UserId;
+            string sql = $"/*dialect*/ select FSupplierId from T_SEC_user a join T_SCP_USERDATA b on a.FUSERID = b.FUSERID where FUSERTYPE = 2 and a.FUSERID ={userId}";
+            int FSupplierId = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+            return FSupplierId;
+        }
+    }
+}
+
diff --git a/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs b/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs
index b0fe25c..3923f23 100644
--- a/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs
+++ b/src/BLL/Demo.BillView/PRD/ProCompleteAnalysisDetails.cs
@@ -17,6 +17,9 @@
     public class ProCompleteAnalysisDetail : AbstractDynamicFormPlugIn
     {
         bool did = false;
+        string FHMainICMOInterIDr = "";
+        string FHMainICMOEntryID = "";
+        string FHICMOInterID = "";
         public override void OnLoad(EventArgs e)
         {
             base.OnLoad(e);
@@ -29,9 +32,9 @@
             {
                 if (did)
                     return;
-                string FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterID").ToString();//涓荤敓浜ц鍗曚富鍐呯爜
-                string FHMainICMOEntryID = this.View.OpenParameter.GetCustomParameter("FHMainICMOEntryID").ToString();// 涓荤敓浜ц鍗曞瓙鍐呯爜
-                string FHICMOInterID = this.View.OpenParameter.GetCustomParameter("FHICMOInterID").ToString();//鏃ヨ鍒掕鍗曚富鍐呯爜
+                  FHMainICMOInterIDr = this.View.OpenParameter.GetCustomParameter("FHMainICMOInterID").ToString();//涓荤敓浜ц鍗曚富鍐呯爜
+                  FHMainICMOEntryID = this.View.OpenParameter.GetCustomParameter("FHMainICMOEntryID").ToString();// 涓荤敓浜ц鍗曞瓙鍐呯爜
+                  FHICMOInterID = this.View.OpenParameter.GetCustomParameter("FHICMOInterID").ToString();//鏃ヨ鍒掕鍗曚富鍐呯爜
                 string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill where FHMainICMOInterIDr ='{0}' and FHMainICMOEntryID ='{1}' and FHICMOInterID='{2}' order by FPlanDate, FHStockQty desc ,FHMaterID ", FHMainICMOInterIDr, FHMainICMOEntryID, FHICMOInterID);
                 DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
                 if (dt.Rows.Count > 0)
@@ -112,8 +115,8 @@
         /// </summary>
         public void SearchList()
         {
-            string sqlwhere = " where 1=1";
-            string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill ");
+            string sqlwhere = $" where FHMainICMOInterIDr ='{FHMainICMOInterIDr}' and FHMainICMOEntryID ='{FHMainICMOEntryID}' and FHICMOInterID='{FHICMOInterID}'";
+            string sql = string.Format(@"/*dialect*/select * from JIT_MOMaterReadysBill  ");
             //鐗╂枡
             if ((this.Model.GetValue("FMateralId") as DynamicObject) != null)
             {
@@ -135,6 +138,7 @@
             string PRDBillNo = Convert.ToString(this.Model.GetValue("FScOrderNo"));
             if (!string.IsNullOrEmpty(PRDBillNo))
                 sqlwhere += $" and FPRDBillNo='{PRDBillNo}'";
+
             sql += sqlwhere;
             sql += "order by FPlanDate, FHStockQty desc ,FHMaterID";
             DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0];
diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index c4171cf..529135e 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -84,13 +84,9 @@
                 {
                     Save();
                 }
-
                 if (e.BarItemKey.ToUpper() == "TBCOMPLETE")
                 {
-                    //CompleteSetAnalysis();
-                    //COMPLETEMAIN();
                     COMPLETE();
-                    SearchList();
                 }
                 //鎻愭枡璁″垝
                 if (e.BarItemKey.ToUpper() == "TBEXTRACTION")
@@ -108,9 +104,7 @@
                     finally
                     {
                         this.View.ShowMessage("鎿嶄綔鎴愬姛锛�");
-
                     }
-
                 }
                 //棰勭暀
                 if (e.BarItemKey.ToUpper() == "TBRESERVE")
@@ -120,7 +114,6 @@
                 //閲婃斁
                 if (e.BarItemKey.ToUpper() == "TBRELEASE")
                 {
-
                     Release();
                 }
             }
@@ -403,9 +396,7 @@
                 {
                     // 闇�瑕佹崟鑾烽敊璇紝浠ョ‘淇濆鐞嗙粨鏉熸椂锛屽叧闂繘搴︽粴鍔ㄧ晫闈�
                     // 寮曞叆鍔熻兘瀹為檯澶勭悊鍑芥暟
-                    //this.CompleteSetAnalysis();
                     this.CompleteSetAnalysisBySQL();
-
                 }
                 finally
                 {
@@ -692,8 +683,8 @@
 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
-join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
-where d.FAvailableComplete<>0
+--join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
+--where d.FAvailableComplete<>0
 --where T1.FMATERIALID in (105773)
 ");
                 ListInventory = ds.ToModelList<PRD_Inventory>();
@@ -712,8 +703,8 @@
 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)
-join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
-where d.FAvailableComplete<>0
+--join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
+--where d.FAvailableComplete<>0
 group by T1.FStockOrgId,T1.FMATERIALID
 ");
                 ListInventoryByStockOrgId = ds.ToModelList<PRD_Inventory>();
@@ -873,7 +864,7 @@
                     if (item.FOwnerId != null)
                         FBatchModel.Add("FOwnerId", new JObject() { ["FNUMBER"] = item.FOwnerId });
                     Fentity.Add(FBatchModel);
-                    if (i >= 20 && (i % 20 == 0 || i == completeAnalysisTempModel.Count))
+                    if ((i >= 20 || i == completeAnalysisTempModel.Count) && (i % 20 == 0 || i == completeAnalysisTempModel.Count))
                     {
                         LogHelper.Info("榻愬鍒嗘瀽鎵归噺鎵ц锛岃褰曞惊鐜殑褰撳墠鏉℃暟" + i);
                         JObject jsonRoot = new JObject()
@@ -943,8 +934,8 @@
 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
-join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
-where d.FAvailableComplete<>0
+--join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
+--where d.FAvailableComplete<>0
 --where T1.FMATERIALID in (105773)
 ");
                 ListInventory = ds.ToModelList<PRD_Inventory>();
@@ -962,8 +953,8 @@
 ) 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
-join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
-where d.FAvailableComplete<>0
+--join t_BD_Stock d on a.FSTOCKID =d.FSTOCKID
+--where d.FAvailableComplete<>0
 --where T1.FMATERIALID in (105773)
 group by T1.FStockOrgId,T1.FMATERIALID
 ");
@@ -982,6 +973,7 @@
 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
+and b.FHQTY>0
 ORDER BY b.FHMASTERDATE,a.FHOrderLev 
 ";
                 ds = DBServiceHelper.ExecuteDataSet(Context, sql);
@@ -1000,7 +992,7 @@
                     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();
                         //鐪熸闇�瑕佸彇璁$畻鐨勬暟閲忥紙鎷嗗垎璐т富锛�
@@ -1062,7 +1054,9 @@
                         {
                             decimal occupyMaterial = 0;
                             if (occupyDic.ContainsKey(_item.FMATERIALID2))
+                            {
                                 occupyMaterial = occupyDic[_item.FMATERIALID2];
+                            }
                             completeAnalysisTempModel.Add(new Demo.Model.Model.CompleteAnalysisTempModel
                             {
                                 FHMainICMOInterIDr = _item.FPRDMOMAINID,
@@ -1092,8 +1086,8 @@
 
                 }
                 LogHelper.Info($"榻愬鍒嗘瀽锛屾暟鎹噯澶囧畬鎴愶紝淇濆瓨鍒癕odel瀹炰綋锛屾�昏鏁帮細{completeAnalysisTempModel.Count}锛岃�楁椂锛�" + sw.Elapsed);
-
                 List<string> sqlList = new List<string>();
+                int jdtmmm = 1;
                 foreach (var item in completeAnalysisTempModel)
                 {
                     sql = string.Format(@"
@@ -1107,14 +1101,10 @@
 delete   z_JIT_MOMaterReadysBill
 ", item.FHMainICMOInterIDr, item.FHMainICMOEntryID, item.FHICMOInterID, item.FHICMOEntryID, item.FHMaterID, item.FHStockOrgID, item.FHStockQty, item.FHLeftQty, item.FHPRDORGID, item.FUnitDosage, item.FSumPlanCount, item.FPRDBillNo, item.FOwnerId == null ? "0" : item.FOwnerId, item.FPlanDate.ToString("yyyy-MM-dd"), item.FComPlete, item.FLackCount, item.FOccupyCount, item.FCompleteCount1);
                     sqlList.Add(sql);
-
-                    //if (sql.Contains("559"))
-                    //    LogHelper.Info("璁板綍sql559锛�" + sql);
-
+                    this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(98) / completeAnalysisTempModel.Count) * jdtmmm);
+                    jdtmmm++;
                 }
-                LogHelper.Info("鎵归噺鎵цsql寮�濮嬶細");
                 DBServiceHelper.ExecuteBatch(Context, sqlList);
-                LogHelper.Info("鎵归噺鎵цsql缁撴潫锛�");
                 //鎵ц瀹屾垚鍚� 鏇存柊鏃ヨ鍒掑伐鍗曠姸鎬�
                 DBServiceHelper.Execute(Context, @"
 /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '鏈綈濂�' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'鏈綈濂�') ='鏈綈濂�')
@@ -1588,7 +1578,7 @@
                         //if (!string.IsNullOrEmpty(_DayPlanMaterial[0].FID))
                         //    model.Add("FID", _DayPlanMaterial[0].FID);
                         Fentity.Add(model);
-                        if (i >= 20  && (i % 20 == 0 || i == fidList.Count))
+                        if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count))
                         {
                             LogHelper.Info("鏃ヨ鍒掔敤鏂欐竻鍗曟壒閲忔墽琛岋紝璁板綍寰幆鐨勫綋鍓嶆潯鏁�" + i);
                             JObject jsonRoot = new JObject()
@@ -1673,6 +1663,22 @@
 AND FComplete ='鏈綈濂�'
 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);
+                sql = string.Format(@"
+ /*dialect*/
+SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId 
+FROM   (
+select FHICMOINTERID FID,FHICMOENTRYID FEntryID,FPlanDate FHMASTERDATE,FLackCount NeedQty,FHMATERID FMATERIALID,FHStockOrgID FStockOrgId,FPRDBILLNO FBillNo,FSumPlanCount FNeedQty from JIT_MOMaterReadysBill 
+)T1
+JOIN T_BD_MATERIAL T6 ON T1.FMATERIALID = T6.FMATERIALID
+join t_BD_MaterialBase t4 on T1.FMATERIALID = t4.FMATERIALID
+join t_BD_MaterialPlan t5 on T1.FMATERIALID = t5.FMATERIALID
+WHERE  DATEDIFF(D,GETDATE(),FHMASTERDATE) >=0
+AND FERPCLSID=1 
+AND T1.NeedQty>0
+AND T1.FENTRYID not in (select distinct FHSOURCEENTRYID from CG_PODEMANDPLANBILLSUB where FHSOURCEINTERID IN ({0}))
 AND T1.FID in ({0}) 
 order by FHMASTERDATE
 ", FDayPlanWorkID);
@@ -1971,7 +1977,7 @@
                     }
                     model.Add("FEntity", Fentity);
                     FinalyResult.Add(model);
-                    if (tlmmm >= 20 && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count))
+                    if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count))
                     {
                         LogHelper.Info("榻愬鍒嗘瀽鎵归噺鎵ц锛岃褰曞惊鐜殑褰撳墠鏉℃暟" + tlmmm);
                         JObject jsonRoot = new JObject()

--
Gitblit v1.9.1