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