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_ScDayImport.cs |  154 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 113 insertions(+), 41 deletions(-)

diff --git a/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs b/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
index 6ab4a1e..e50a37d 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_ScDayImport.cs
@@ -28,26 +28,29 @@
     public class Pro_ScDayImport : AbstractDynamicFormPlugIn
     {
         private string fileFullPath = string.Empty;
-
-        //public override void OnLoad(EventArgs e)
-        //{
-        //    base.OnLoad(e);
-        //    throw new Exception("1");
-        //}
+        /// <summary>
+        /// 椤甸潰鍒濆鍖� 娓叉煋鐣岄潰 灏員0-T60鏇存敼涓烘棩鏈熸樉绀�
+        /// </summary>
+        /// <param name="e"></param>
+        public override void OnInitialize(InitializeEventArgs e)
+        {
+            base.OnInitialize(e);
+            DateTime DateNow = DateTime.Now;
+            for (int m = 0; m <= 60; m++)
+            {
+                this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00";
+                this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString();
+            }
+            this.View.SendDynamicFormAction(View);
+        }
         public override void BarItemClick(BarItemClickEventArgs e)
         {
-            //LogHelper.Info("瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳锛�");
             if (e.BarItemKey.ToUpper().Equals("TBIMPORT"))
             {
-                //LogHelper.Info("瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳锛�");
                 ImportData();
-                //WriteImportLog();
-                //this.View.ShowErrMessage("娴嬭瘯瀵煎叆鍔熻兘鐐瑰嚮鎸夐挳");
             }
-
             if (e.BarItemKey.ToUpper().Equals("TBWJSC"))
             {
-                //LogHelper.Info("鏂囦欢涓婁紶鍔熻兘鐐瑰嚮鎸夐挳锛�");
                 ImportDataSC(fileFullPath);
             }
         }
@@ -108,9 +111,14 @@
                         return;
                     }
                     dt.Rows.RemoveAt(0);//鍘婚櫎鏍囬琛�
-                    //DataSet ds = helper.ReadFromFile(fileFullPath, 1);
-                    //DataTable dt = ds.Tables[0];
-                    //LogHelper.Info("瀵煎叆鍔熻兘锛歞t琛屾暟锛�" + dt.Rows.Count);
+                    string FOrderType = this.Model.GetValue("FOrderType").ToString();
+                    string FTempName = "T_PRD_MO";
+                    string FTempNameEntry = "T_PRD_MOENTRY";
+                    if (FOrderType == "濮斿璁㈠崟")
+                    {
+                        FTempName = "T_SUB_REQORDER";
+                        FTempNameEntry = "T_SUB_REQORDERENTRY";
+                    }
                     DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
                     if (dt.Rows.Count > 0)
                     {
@@ -120,19 +128,46 @@
                         for (int i = 0; i < dt.Rows.Count; i++)
                         {
                             error = "";
+                            if (dt.Rows[i][dicExcelCol["缁勭粐缂栫爜"]].ToString() == "")
+                                error += "缁勭粐缂栫爜涓嶈兘涓虹┖;";
                             if (dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鍙�"]].ToString() == "")
-                                error += "鐢熶骇璁㈠崟鍙蜂笉鑳戒负绌�;\n";
+                                error += "鐢熶骇璁㈠崟鍙蜂笉鑳戒负绌�;";
                             if (dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鏄庣粏琛屽彿"]].ToString() == "")
                                 error += "鐢熶骇璁㈠崟鏄庣粏琛屽彿涓嶈兘涓虹┖;";
                             if (dt.Rows[i][dicExcelCol["鐢熶骇杞﹂棿缂栫爜"]].ToString() == "")
-                                error += "鐢熶骇杞﹂棿缂栫爜涓嶈兘涓虹┖;\n";
-                            //澧炲姞鍛樺伐
+                                error += "鐢熶骇杞﹂棿缂栫爜涓嶈兘涓虹┖;";
+                            if (dt.Rows[i][dicExcelCol["鐢熶骇璧勬簮缂栫爜"]].ToString() == "")
+                                error += "鐢熶骇璧勬簮缂栫爜涓嶈兘涓虹┖;";
                             if (dt.Rows[i][dicExcelCol["鐗╂枡缂栫爜"]].ToString() == "")
-                                error += "鐗╂枡缂栫爜涓嶈兘涓虹┖;\n";
+                                error += "鐗╂枡缂栫爜涓嶈兘涓虹┖;";
                             if (dt.Rows[i][dicExcelCol["浜よ揣鏃ユ湡"]].ToString() == "")
-                                error += "浜よ揣鏃ユ湡涓嶈兘涓虹┖;\n";
+                                error += "浜よ揣鏃ユ湡涓嶈兘涓虹┖;";
                             if (dt.Rows[i][dicExcelCol["璁㈠崟绛夌骇"]].ToString() == "")
-                                error += "璁㈠崟绛夌骇涓嶈兘涓虹┖;\n";
+                                error += "璁㈠崟绛夌骇涓嶈兘涓虹┖;";
+                            //楠岃瘉 鐢熶骇璧勬簮 + 鐗╂枡 鍒ゆ柇 鏄惁鏈夌淮鎶や骇鑳借〃 
+                            string cnSql = string.Format(@"/*dialect*/ 
+SELECT Count(*) row
+FROM T_PRD_MATERIALCOMPARE T1 
+JOIN T_PRD_MATERIALCOMPAREENTRY T2 ON T1.FID=T2.FID
+JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
+JOIN T_ORG_ORGANIZATIONS T4 ON T1.FORGID = T4.FORGID
+JOIN T_JIT_WORKCENTER T5 ON T2.FSCZY = T5.FID
+WHERE T4.FNUMBER = '{0}' AND T3.FNUMBER='{1}' AND T5.FNUMBER ='{2}'",
+dt.Rows[i][dicExcelCol["缁勭粐缂栫爜"]].ToString(), dt.Rows[i][dicExcelCol["鐗╂枡缂栫爜"]].ToString(), dt.Rows[i][dicExcelCol["鐢熶骇璧勬簮缂栫爜"]].ToString());
+                            int cnFid = DBServiceHelper.ExecuteScalar<int>(Context, cnSql, 0);
+                            if (cnFid == 0)
+                                error += "娌℃湁缁存姢浜ц兘琛�;";
+                            cnSql = string.Format(@"/*dialect*/ 
+SELECT Count(*) row  FROM {0} T1
+LEFT JOIN {1} T2 ON T1.FID = T2.FID
+JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
+join (  select A.FBILLTYPEID,B.FNAME  from T_BAS_BILLTYPE A 
+JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID
+where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND  b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
+WHERE T1.FBILLNO = '{2}'  AND T3.FNUMBER = '{3}' and FSEQ='{4}' ", FTempName, FTempNameEntry, dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鍙�"]].ToString(), dt.Rows[i][dicExcelCol["鐗╂枡缂栫爜"]].ToString(), dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鏄庣粏琛屽彿"]].ToString());
+                            cnFid = DBServiceHelper.ExecuteScalar<int>(Context, cnSql, 0);
+                            if (cnFid == 0)
+                                error += "娌℃湁鐢熶骇璁㈠崟淇℃伅;";
                             if (error.Length > 0)
                                 ErrorResult += $"Excel妯℃澘瀛樺湪閿欒锛岃鏁皗i + 1}:{error}\r\n";
                         }
@@ -146,13 +181,13 @@
                         {
                             //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏(2.28+鐢熶骇璁㈠崟鏄庣粏琛屽彿楠岃瘉)
                             string sql = string.Format(@"/*dialect*/ 
-SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*  FROM T_PRD_MO T1
-LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
+SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*  FROM {0} T1
+LEFT JOIN {1} T2 ON T1.FID = T2.FID
 JOIN T_BD_MATERIAL T3 ON T2.FMATERIALID = T3.FMATERIALID
 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 T3.FNUMBER = '{1}' and FSEQ='{2}' ", dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鍙�"]].ToString(), dt.Rows[i][dicExcelCol["鐗╂枡缂栫爜"]].ToString(), dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鏄庣粏琛屽彿"]].ToString());
+where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER')   AND  b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID
+WHERE T1.FBILLNO = '{2}'  AND T3.FNUMBER = '{3}' and FSEQ='{4}' ", FTempName, FTempNameEntry, dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鍙�"]].ToString(), dt.Rows[i][dicExcelCol["鐗╂枡缂栫爜"]].ToString(), dt.Rows[i][dicExcelCol["鐢熶骇璁㈠崟鏄庣粏琛屽彿"]].ToString());
                             DataTable _dt = new DataTable();
                             _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                             string FLOT = "";//FLOT  鎵规
@@ -280,6 +315,18 @@
         {
             try
             {
+                string FOrderType = this.Model.GetValue("FOrderType").ToString();
+                string FTempName = "T_PRD_MO";
+                string FTempNameEntry = "T_PRD_MOENTRY";
+                string FTempBomName = "T_PRD_PPBOM";
+                string FTempBomNameEntry = "T_PRD_PPBOMENTRY";
+                if (FOrderType == "濮斿璁㈠崟")
+                {
+                    FTempName = "T_SUB_REQORDER";
+                    FTempNameEntry = "T_SUB_REQORDERENTRY";
+                    FTempBomName = "T_SUB_PPBOM";
+                    FTempBomNameEntry = "T_SUB_PPBOMENTRY";
+                }
                 CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
                 string sql;
                 DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date"));
@@ -293,9 +340,12 @@
                 foreach (DynamicObject current in entityDataObjoct)
                 {
                     //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鐢熶骇璁㈠崟鏄庣粏鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿 + 缁勭粐(2021-12-10淇敼)
-                    sql = string.Format(@"/*dialect*/SELECT T1.FBILLNO,T2.* FROM T_PRD_MO T1
-                                LEFT JOIN T_PRD_MOENTRY T2 ON T1.FID = T2.FID
-                                WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}' AND T1.FPRDORGID = '{3}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FORGID_Id"]));
+                    sql = string.Format(@"
+/*dialect*/
+SELECT T1.FBILLNO,T2.* FROM {4} T1
+LEFT JOIN {5} T2 ON T1.FID = T2.FID
+WHERE T1.FBILLNO = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}' AND T1.{6} = '{3}'"
+, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), Convert.ToString(current["FORGID_Id"]), FTempName, FTempNameEntry, FOrderType == "濮斿璁㈠崟" ? "FSUBORGID" : "FPRDORGID");
                     //LogHelper.Info(sql);
                     DataTable dt = new DataTable();
                     dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
@@ -308,16 +358,37 @@
                     return;
                 }
                 //鏍¢獙鐢熶骇鐢ㄦ枡娓呭崟鏄惁瀹℃牳
-                foreach (DynamicObject current in entityDataObjoct)
+                if (FOrderType == "鐢熶骇璁㈠崟")
                 {
-                    //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿
-                    sql = string.Format(@"/*dialect*/SELECT FBILLNO FROM T_PRD_PPBOM T1
-WHERE T1.FMOBILLNO = '{0}'  AND T1.FMATERIALID = '{1}' AND T1.FMOENTRYSEQ = '{2}' and FDOCUMENTSTATUS <>'C'                          
-", 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)
-                        _result += "搴忓彿锛�" + Convert.ToString(current["SEQ"]) + ",鐢熶骇璁㈠崟鍙凤細" + Convert.ToString(current["FSCOrderNo"]) + ",鐢熶骇璁㈠崟鏄庣粏琛屽彿锛�" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "鐗╂枡" + (current["FMatrailId"] as DynamicObject)["Number"] + "瀵瑰簲鐨勭敓浜х敤鏂欐竻鍗曪細" + dt.Rows[0][0] + "鏈鏍竆n";
+                    foreach (DynamicObject current in entityDataObjoct)
+                    {
+                        //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿
+                        sql = string.Format(@"
+/*dialect*/
+SELECT FBILLNO FROM {0} T1
+WHERE T1.FMOBILLNO = '{1}'  AND T1.FMATERIALID = '{2}' AND T1.FMOENTRYSEQ = '{3}' and FDOCUMENTSTATUS <>'C'                          
+", FTempBomName, 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)
+                            _result += "搴忓彿锛�" + Convert.ToString(current["SEQ"]) + ",鐢熶骇璁㈠崟鍙凤細" + Convert.ToString(current["FSCOrderNo"]) + ",鐢熶骇璁㈠崟鏄庣粏琛屽彿锛�" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "鐗╂枡" + (current["FMatrailId"] as DynamicObject)["Number"] + "瀵瑰簲鐨勭敓浜х敤鏂欐竻鍗曪細" + dt.Rows[0][0] + "鏈鏍竆n";
+                    }
+                }
+                else
+                {
+                    foreach (DynamicObject current in entityDataObjoct)
+                    {
+                        //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿
+                        sql = string.Format(@"
+/*dialect*/
+SELECT FBILLNO FROM {0} T1
+WHERE T1.FSUBBILLNO = '{1}'  AND T1.FMATERIALID = '{2}' AND T1.FSUBREQENTRYSEQ = '{3}' and FDOCUMENTSTATUS <>'C'                          
+", FTempBomName, 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)
+                            _result += "搴忓彿锛�" + Convert.ToString(current["SEQ"]) + ",鐢熶骇璁㈠崟鍙凤細" + Convert.ToString(current["FSCOrderNo"]) + ",鐢熶骇璁㈠崟鏄庣粏琛屽彿锛�" + Convert.ToString(current["FSRCBILLENTRYSEQ"]) + "鐗╂枡" + (current["FMatrailId"] as DynamicObject)["Number"] + "瀵瑰簲鐨勭敓浜х敤鏂欐竻鍗曪細" + dt.Rows[0][0] + "鏈鏍竆n";
+                    }
                 }
                 if (_result != "")
                 {
@@ -356,14 +427,14 @@
                     //鏌ヨ鐢熶骇璁㈠崟鏁版嵁 
                     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 {3} T1
+ LEFT JOIN {4} 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 = '{0}'  AND T2.FMATERIALID = '{1}' AND T2.FSEQ = '{2}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"]), FTempName, FTempNameEntry);
                     DataTable dt = new DataTable();
                     dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
                     if (dt.Rows.Count == 0)
@@ -401,6 +472,7 @@
                     JObject jsonModel = new JObject();
                     jsonModel.Add("FPreparatDate", FPlanBeginDate);//缂栧埗鏃ユ湡(鏀逛负璁″垝寮�濮嬫棩鏈�)
                     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"]));//閿�鍞鍗曞彿

--
Gitblit v1.9.1