From a93a49e6415af2187d0f465e453ee613f3eaf178 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期一, 10 一月 2022 15:32:25 +0800
Subject: [PATCH] 优化

---
 src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs |  250 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 193 insertions(+), 57 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
index c8a344e..e7ec623 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_WorkBillPlatform.cs
@@ -4,6 +4,7 @@
 using K3Cloud.Extend.Utils;
 using Kingdee.BOS.Core;
 using Kingdee.BOS.Core.Bill;
+using Kingdee.BOS.Core.CommonFilter;
 using Kingdee.BOS.Core.Const;
 using Kingdee.BOS.Core.DynamicForm;
 using Kingdee.BOS.Core.DynamicForm.PlugIn;
@@ -60,7 +61,6 @@
             }
             this.View.SendDynamicFormAction(View);
         }
-        /// <su
         public override void DataChanged(DataChangedEventArgs e)
         {
             if (!isSearched) return;
@@ -157,9 +157,9 @@
                     }
                 }
                 //閫夊崟
-                if (e.BarItemKey.ToUpper() == "TBSELECTMENU")
+                if (e.BarItemKey.ToUpper().Contains("TBSELECTMENU"))
                 {
-                    SelectMenu();
+                    SelectMenu(e.BarItemKey.ToString());
                 }
                 //棰勭暀
                 if (e.BarItemKey.ToUpper() == "TBRESERVE")
@@ -517,18 +517,25 @@
                     int fDayPlanFID = DBServiceHelper.ExecuteScalar<int>(Context, moSql, 0);
                     if (fDayPlanFID > 0)
                         continue;
-
-                    //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿
+                    string FOrderType = Convert.ToString(current["FOrderType"]) ?? "";
+                    string FTempName = "T_PRD_MO";
+                    string FTempNameEntry = "T_PRD_MOENTRY";
+                    if (FOrderType == "濮斿璁㈠崟")
+                    {
+                        FTempName = "T_SUB_REQORDER";
+                        FTempNameEntry = "T_SUB_REQORDERENTRY";
+                    }
+                    ///鏌ヨ鐢熶骇璁㈠崟鏁版嵁 
                     sql = string.Format(@"
 /*dialect*/
-SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM T_PRD_MO T1
- LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
+SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM {0} T1
+ LEFT JOIN {1} T2 ON T1.FID = T2.FID
  LEFT JOIN T_ENG_BOM tBom on t2.FBOMID = tBom.FID
  join T_BD_UNIT t3 on t2.FUNITID=t3.FUNITID 
  join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A 
 JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
-where FBILLFORMID='PRD_MO'  AND FNAME<>'鐢熺敘瑷傚柈')t4 on t1.FBILLTYPE =t4.FBILLTYPEID
- WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
+where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
+ WHERE T1.FBILLNO = '{2}'  AND T2.FMATERIALID = '{3}' AND T2.FSEQ = '{4}'", FTempName, FTempNameEntry, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]));
                     DataTable dt = new DataTable();
                     dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                     if (dt.Rows.Count == 0)
@@ -568,6 +575,7 @@
                     JObject jsonModel = new JObject();
                     jsonModel.Add("FPreparatDate", Convert.ToString(current["FBzDate"]));//缂栧埗鏃ユ湡锛堟敼涓洪璁″紑宸ユ棩鏈燂級
                     jsonModel.Add("FMoFBillType", FMoFBillType);//
+                    jsonModel.Add("FOrderType", FOrderType);//
                     jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//鐢熶骇璁㈠崟鏄庣粏琛屽彿
                     jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //鐢熶骇璁㈠崟鍙稦SCOrderNo
                     jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//閿�鍞鍗曞彿
@@ -1076,12 +1084,34 @@
 JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID
 JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID
 --鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒�
-where 
+where FOrderType = '鐢熶骇璁㈠崟' and
+--(FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or 
+DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0
+and a.FDOCUMENTSTATUS not in ('E')
+and b.FHQTY>0 
+
+union all
+
+select a.FPRDMOMAINID,a.FPRDMOENTYID,a.FID,b.FEntryID,a.FHPRDORGID FStockOrgId,t5.FNUMBER as OrgFnumber,a.FHOrderLev,b.FHQTY,b.FHMASTERDATE,T1.FBillNo,T1.FSUBBILLNO,T1.FSUBREQENTRYSEQ,T1.FSUBREQID,T1.FMaterialID,T1.FQty,
+T2.FMATERIALID FMATERIALID2, T4.FNumber,T2.FNeedQty,FNeedQty/FQty dwyl,CEILING((FHQTY-ISNULL(FProductNum,0))*(FNeedQty/FQty)) PlanCount,TBase.FErpClsID 
+from SC_WORKBILLSORTBILLMAIN a
+join SC_WORKBILLSORTBILLSub b on a.FID = b.FID
+join T_SUB_PPBOM T1 on a.FPRDMOMAINID = t1.FSUBREQID and a.FPRDMOENTYID = t1.FSUBREQENTRYID
+LEFT JOIN(select FID, MAX(FENTRYID) FENTRYID, SUM(FMUSTQTY) FNeedQty, FMATERIALID from T_SUB_PPBOMENTRY
+group by FMATERIALID, FID ) T2 on T1.FID = t2.FID
+ --LEFT JOIN T_STK_Inventory T3 on t2.FMATERIALID = t3.FMATERIALID
+JOIN T_BD_MATERIAL T4 on T2.FMATERIALID = T4.FMATERIALID
+JOIN t_BD_MaterialBase TBase on T2.FMATERIALID = TBase.FMATERIALID
+JOIN T_ORG_Organizations t5 on a.FHPRDORGID = t5.FORGID
+--鏉′欢涓轰粖澶╁線鍚庣殑鏃ヨ鍒� + 浠婂ぉ涔嬪墠鏈叧闂殑鏃ヨ鍒�
+where FOrderType = '濮斿璁㈠崟' and
 --(FHEntryCloseDate is null and DATEDIFF(D,GETDATE(),FHMASTERDATE)<0)or 
 DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0
 and a.FDOCUMENTSTATUS not in ('E')
 and b.FHQTY>0
-ORDER BY b.FHMASTERDATE,a.FHOrderLev 
+
+ORDER BY b.FHMASTERDATE,a.FHOrderLev	
+ 
 ";
                 ds = DBServiceHelper.ExecuteDataSet(Context, sql);
                 List<PRD_PPBOM> BomList = ds.ToModelList<PRD_PPBOM>();
@@ -1823,6 +1853,7 @@
                     this.Model.CreateNewEntryRow("FEntity");
                     this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿
                     this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//鐢熶骇璁㈠崟鍗曟嵁绫诲瀷
+                    this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//璁㈠崟绫诲瀷
                     this.Model.SetValue("FCompleteSetCount", "", i);//鎬婚綈濂楁暟閲�
                     this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//鐢熶骇璁㈠崟鏁伴噺 
                     this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);//  
@@ -1952,6 +1983,7 @@
                     this.Model.CreateNewEntryRow("FEntity");
                     this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿
                     this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//鐢熶骇璁㈠崟鍗曟嵁绫诲瀷
+                    this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//璁㈠崟绫诲瀷
                     this.Model.SetValue("FCompleteSetCount", "", i);//鎬婚綈濂楁暟閲�
                     this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//鐢熶骇璁㈠崟鏁伴噺 
                     this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);//  
@@ -2131,7 +2163,7 @@
  SELECT * FROM SC_TLPLANZXJH", filter["FDayPlanWorkID"]));
                 }
                 FDayPlanWorkID = FDayPlanWorkID.TrimEnd(',');
-                sqlWhere += $"AND t2.FID IN ({FDayPlanWorkID})";
+                sqlWhere += $"AND FID IN ({FDayPlanWorkID})";
             }
             DBServiceHelper.ExecuteBatch(Context, zxSqlList);
             //Stopwatch sw = new Stopwatch();
@@ -2142,8 +2174,9 @@
             try
             {
                 string sql = string.Format(@"/*dialect*/
+SELECT * FROM (
 select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,t3.FMOEntrySeq as FMoSeq,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(t4.FMustQty/T3.FQTY) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID FPPBOMENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID,t2.FSCORDERNO,
-t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,torg.FNUMBER as FORGNUMBER,t3.FMOID,FIssueType,FMaterialType,td.FNUMBER as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate
+t3.FMOENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,tc.FOWNERTYPEID,tc.FOWNERID,tc.FEntrustPickOrgId,t3.FMOID,FIssueType,FMaterialType,td.FNUMBER as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate
 FROM Sc_WorkBillSortBillSub t1
 JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID
 JOIN T_PRD_PPBOM T3 on T2.FPRDMOMAINID=t3.FMOID AND T2.FPRDMOENTYID=T3.FMOENTRYID
@@ -2164,9 +2197,36 @@
  LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID
  LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID
  left join T_BD_DEPARTMENT td on t3.FWORKSHOPID=td.FDEPTID
- WHERE
-t1.FHMASTERDATE between  DATEADD(day,-1,getdate()) and DATEADD(day,{0} - 1,getdate())
-and t1.FEntryID not in 
+ WHERE  t2.FORDERTYPE = '鐢熶骇璁㈠崟' 
+
+union all 
+
+select t1.FID,t1.FSEQ FDayPlanFSEQ,t1.FEntryID,T2.FBILLNO AS FDayPlanFBILLNO,t3.FMATERIALID,t3.FSUBREQENTRYSEQ as FMoSeq,T5.FNUMBER,t1.FHMASTERDATE,t1.FHQTY,t4.FMATERIALID FMATERIALID2,T6.FNUMBER FNUMBER2,T7.FNUMBER FUNITNUMBER,FNumerator,FDenominator,convert(decimal(18,2),(t4.FMustQty/T3.FQTY) *t1.FHQTY) FHQtyMust,T4.FUnitID,t8.FNUMBER FUNITNUMBER2,T3.FID FPPBOM,T4.FENTRYID FPPBOMENTRYID,isnull(T9.FBillNo,'')FBillNo,t10.FNUMBER FORGNUMBER,t11.FNUMBER FHSOURCENUMBER,FSCRAPRATE,FFIXSCRAPQTY,T9.FID AS DayPlanFID,t2.FSCORDERNO,
+t3.FSUBREQENTRYID,t3.FBILLNO FPPBOMBILLNO,T4.FSEQ,Tc.FOWNERTYPEID,tc.FOWNERID,t3.FPARENTOWNERID FEntrustPickOrgId,t3.FSUBREQID,0 as FIssueType,FMaterialType,''as FWORKSHOPID,t4.FReplaceGroup,isnull(ttt.FrowCount,0)FIsTDL,t4.FUseRate
+FROM Sc_WorkBillSortBillSub t1
+JOIN Sc_WorkBillSortBillMAIN t2 on t1.FID = t2.FID
+JOIN T_SUB_PPBOM T3 on T2.FPRDMOMAINID=t3.FSUBREQID AND T2.FPRDMOENTYID=T3.FSUBREQENTRYID
+JOIN T_SUB_PPBOMENTRY T4 ON T3.FID=T4.FID
+LEFT JOIN
+(
+	select FREPLACEGROUP,COUNT(*) FrowCount,FID  from T_SUB_PPBOMENTRY
+	GROUP BY FREPLACEGROUP,FID
+	having count(*) >1
+) ttt on t4.FID = ttt.FID and  t4.FREPLACEGROUP =ttt.FREPLACEGROUP 
+JOIN T_SUB_PPBOMENTRY_C Tc ON T4.FENTRYID=Tc.FENTRYID
+join T_ORG_Organizations torg ON Tc.FOWNERID = torg.FORGID 
+JOIN T_BD_MATERIAL T5 ON T3.FMATERIALID=T5.FMATERIALID
+JOIN T_BD_MATERIAL T6 ON T4.FMATERIALID=T6.FMATERIALID
+LEFT JOIN T_BD_UNIT T7 ON T3.FUNITID = T7.FUNITID
+LEFT JOIN T_BD_UNIT T8 ON T4.FUNITID = T8.FUNITID
+ LEFT JOIN Sc_DayPlanPPBomBillMain T9 ON T1.FEntryID=T9.FDayPlanFID
+ LEFT join T_ORG_Organizations t10 on t2.FHPRDORGID = t10.FORGID
+ LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID
+ WHERE  t2.FORDERTYPE = '濮斿璁㈠崟'
+) TF
+WHERE 
+FHMASTERDATE between  DATEADD(day,-1,getdate()) and DATEADD(day,{0} - 1,getdate())
+and FEntryID not in 
 (
 select distinct FDAYPLANFID from Sc_DayPlanPPBomBillMain where FID IN 
 (
@@ -2990,7 +3050,7 @@
         }
 
         //鐢熶骇璁″垝骞冲彴閫夊崟 鐢熶骇璁㈠崟鏁版嵁
-        public void SelectMenu()
+        public void SelectMenu(string FBarItemKey)
         {
             try
             {
@@ -2999,59 +3059,135 @@
                 //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎
                 DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity);
                 int Fseq = entityDataObjoct.Count();
-                string pageId = Guid.NewGuid().ToString();
                 ListShowParameter showParameter = new ListShowParameter();
-                showParameter.FormId = "PRD_MO";
+                IRegularFilterParameter filterParameter = new ListRegularFilterParameter();
+                filterParameter.Filter = string.Format(" FPickMtrlStatus in (1,2) ");//閮ㄥ垎棰嗘枡 鎴栬�� 鏈鏂�
+                filterParameter.SelectEntitys = new List<string>() { "FTreeEntity" };
+                string pageId = Guid.NewGuid().ToString();
                 showParameter.PageId = pageId;
+                showParameter.ListFilterParameter = filterParameter;
                 showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
                 showParameter.IsLookUp = true;
-                this.View.ShowForm(showParameter, delegate (FormResult result)
+                if (FBarItemKey == "tbSelectMenuSC")
                 {
-                    object returnData = result.ReturnData;
-                    if (returnData is ListSelectedRowCollection)
+                    showParameter.FormId = "PRD_MO";
+                    this.View.ShowForm(showParameter, delegate (FormResult result)
                     {
-                        ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
-                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟 琛屾暟" + listSelectedRowCollection.Count().ToString());
-                        if (listSelectedRowCollection != null)
+                        object returnData = result.ReturnData;
+                        if (returnData is ListSelectedRowCollection)
                         {
-                            var ret = "";
-                            foreach (var listSelectedRow in listSelectedRowCollection)
+                            ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
+                            //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟 琛屾暟" + listSelectedRowCollection.Count().ToString());
+                            if (listSelectedRowCollection != null)
                             {
-                                if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
+                                var ret = "";
+                                foreach (var listSelectedRow in listSelectedRowCollection)
                                 {
-                                    //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸查��");
-                                    ret += "鐢熶骇璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸查��" + "\n";
-                                    continue;
+                                    if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
+                                    {
+                                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸查��");
+                                        ret += "鐢熶骇璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸查��" + "\n";
+                                        continue;
+                                    }
+                                    string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
+                                    int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+                                    if (day > 0)
+                                    {
+                                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:鏃ユ湡澶潬鍚庯紝" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
+                                        ret += "鐢熶骇璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸插瓨鍦ㄦ棩璁″垝\n";
+                                        continue;
+                                    }
+                                    //浠婂ぉ浠ュ墠鐨勬暟鎹槸鏄剧ず涓嶅嚭鏉ョ殑
+                                    sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
+                                    day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+                                    if (day < 0)
+                                    {
+                                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:鏃ユ湡澶潬鍚庯紝" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
+                                        ret += "璁″垝寮�宸ユ棩鏈熷湪浠婂ぉ涔嬪墠,鐢熶骇璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
+                                        continue;
+                                    }
+                                    this.Model.CreateNewEntryRow("FEntity");
+                                    this.View.Model.SetValue("FOrderType", "鐢熶骇璁㈠崟", Fseq);
+                                    this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
+                                    this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
+                                    this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FProductWorkShopId", listSelectedRow.DataRow["FWorkShopID_Id"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FOrderLevel", "3", Fseq);
+                                    this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//棰勮寮�宸ユ棩鏈�
+                                    this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
+                                    Fseq++;
                                 }
-                                //浠婂ぉ浠ュ墠鐨勬暟鎹槸鏄剧ず涓嶅嚭鏉ョ殑
-                                string sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
-                                int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
-                                if (day < 0)
+                                if (ret != "")
                                 {
-                                    //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:鏃ユ湡澶潬鍚庯紝" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
-                                    ret += "璁″垝寮�宸ユ棩鏈熷湪浠婂ぉ涔嬪墠,鐢熶骇璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
-                                    continue;
+                                    this.View.ShowMessage(ret);
                                 }
-                                this.Model.CreateNewEntryRow("FEntity");
-                                this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
-                                this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
-                                this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
-                                this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
-                                this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
-                                this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
-                                this.View.Model.SetValue("FProductWorkShopId", listSelectedRow.DataRow["FWorkShopID_Id"].ToString(), Fseq);
-                                this.View.Model.SetValue("FOrderLevel", "3", Fseq);
-                                this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//棰勮寮�宸ユ棩鏈�
-                                this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
-                                Fseq++;
-                            }
-                            if (ret != "")
-                            {
-                                this.View.ShowMessage(ret);
                             }
                         }
-                    }
-                });
+                    });
+                }
+                else if (FBarItemKey == "tbSelectMenuWW")
+                {
+                    showParameter.FormId = "SUB_SUBREQORDER";
+                    this.View.ShowForm(showParameter, delegate (FormResult result)
+                    {
+                        object returnData = result.ReturnData;
+                        if (returnData is ListSelectedRowCollection)
+                        {
+                            ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
+                            //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟 琛屾暟" + listSelectedRowCollection.Count().ToString());
+                            if (listSelectedRowCollection != null)
+                            {
+                                var ret = "";
+                                foreach (var listSelectedRow in listSelectedRowCollection)
+                                {
+                                    if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0)
+                                    {
+                                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸查��");
+                                        ret += "濮斿璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸查��" + "\n";
+                                        continue;
+                                    }
+                                    string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
+                                    int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+                                    if (day > 0)
+                                    {
+                                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:鏃ユ湡澶潬鍚庯紝" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
+                                        ret += "濮斿璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿锛�" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",宸插瓨鍦ㄦ棩璁″垝\n";
+                                        continue;
+                                    }
+                                    //浠婂ぉ浠ュ墠鐨勬暟鎹槸鏄剧ず涓嶅嚭鏉ョ殑
+                                    sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_SUB_REQORDERENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}";
+                                    day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+                                    if (day < 0)
+                                    {
+                                        //LogHelper.Info("鐢熶骇璁″垝骞冲彴閫夊崟:鏃ユ湡澶潬鍚庯紝" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString());
+                                        ret += "璁″垝寮�宸ユ棩鏈熷湪浠婂ぉ涔嬪墠,濮斿璁㈠崟鍙凤細" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 琛屽彿锛�" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n";
+                                        continue;
+                                    }
+                                    this.Model.CreateNewEntryRow("FEntity");
+                                    this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq);
+                                    this.View.Model.SetValue("FOrderType", "濮斿璁㈠崟", Fseq);
+                                    this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005
+                                    this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq);
+                                    this.View.Model.SetValue("FProductWorkShopId", 0, Fseq);
+                                    this.View.Model.SetValue("FOrderLevel", "3", Fseq);
+                                    this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//棰勮寮�宸ユ棩鏈�
+                                    this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq);
+                                    Fseq++;
+                                }
+                                if (ret != "")
+                                {
+                                    this.View.ShowMessage(ret);
+                                }
+                            }
+                        }
+                    });
+                }
             }
             catch (Exception ex)
             {
@@ -3063,7 +3199,7 @@
         public void ReleaseForLMes()
         {
             string sql = $"exec Realese_Sc_ICMOBillStatus_Tmp";
-            string result =DBServiceHelper.ExecuteScalar<string>(Context,sql,"");
+            string result = DBServiceHelper.ExecuteScalar<string>(Context, sql, "");
             this.View.ShowMessage(result);
         }
     }

--
Gitblit v1.9.1