From 25f2835fa45e704f6eccf2feeaa3d2e95c224e2f Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期五, 09 四月 2021 17:16:04 +0800 Subject: [PATCH] 生产计划平台查询 --- src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 271 insertions(+), 10 deletions(-) diff --git a/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs b/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs index 1b0d679..6faafb9 100644 --- a/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs +++ b/src/BLL/Demo.BillView/PRD/ProductScheduleButtonClick.cs @@ -23,14 +23,26 @@ [HotUpdate] public class ProductScheduleButtonClick : AbstractDynamicFormPlugIn { + /// <summary> + /// 瀹氫箟宸ヤ綔鏃ュ巻鐝粍List<Model> + /// </summary> public List<ENG_WORKCALFULLDATA> ENG_WORKCALFULLDATA = new List<ENG_WORKCALFULLDATA>(); + /// <summary> + /// 鍒濆鍔犺浇浜嬩欢 + /// </summary> + /// <param name="e"></param> + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + SearchList(); + } /// <summary> /// 椤甸潰鎸夐挳鐐瑰嚮浜嬩欢 /// </summary> /// <param name="e"></param> public override void ButtonClick(ButtonClickEventArgs e) { - base.OnLoad(e); + base.ButtonClick(e); try { //閫夋嫨 @@ -38,28 +50,50 @@ { ShowFDprwEntity(); } - //鐢熶骇璁㈠崟 鏌ヨ + //寰呮帓浠诲姟 鏌ヨ + if (e.Key.ToUpper().Equals("FSEARCHBUTTON")) + { + string FDepartId = (this.Model.GetValue("FDpDepartment") as DynamicObject)?["Id"].ToString(); + string FDate = Convert.ToString(this.Model.GetValue("FNewPzDate")); + DprwSearcrList(FDepartId, FDate); + } + //鐢熶骇璁㈠崟 鏌ヨ if (e.Key.ToUpper().Equals("FSEARCHBUTTONSC")) { - this.View.ShowErrMessage("鐢熶骇璁㈠崟鍢垮樋!"); + string FMaterialId = (this.Model.GetValue("FMATERIALIDCX") as DynamicObject)?["Id"].ToString(); + string FProOrderNo = Convert.ToString(this.Model.GetValue("FOrderNoCX")); + ScddSearchList(FMaterialId, FProOrderNo); } } catch (Exception ex) { LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗�-Button鎸夐挳鐐瑰嚮浜嬩欢 鎶涘嚭寮傚父锛�" + ex.Message.ToString()); this.View.ShowErrMessage(ex.Message.ToString()); - } } + /// <summary> + /// 椤甸潰鎸夐挳宸ュ叿鏍忎簨浠� + /// </summary> + /// <param name="e"></param> public override void BarItemClick(BarItemClickEventArgs e) { - base.OnLoad(e); + base.BarItemClick(e); try { //鎺掔▼ if (e.BarItemKey.ToUpper().Equals("TBPC")) { ProductSchedul(); + } + //淇濆瓨 + if (e.BarItemKey.ToUpper().Equals("TBSAVE")) + { + ZdpcSave(); + } + //鍒锋柊 + if (e.BarItemKey.ToUpper().Equals("TBREFASH")) + { + SearchList(); } } catch (Exception ex) @@ -68,7 +102,165 @@ this.View.ShowErrMessage(ex.Message.ToString()); } } + /// <summary> + /// 绐椾綋椤甸潰鍔犺浇 鍙� 鏌ヨ + /// </summary> + public void SearchList() + { + DprwSearcrList("", ""); + ScddSearchList("", ""); + } + /// <summary> + /// 鐣岄潰涓婃柟鈥滃緟鎺掍换鍔♀�濈殑椤电 + /// </summary> + /// <param name="FDepartId"></param> + /// <param name="FDate"></param> + public void DprwSearcrList(string FDepartId, string FDate) + { + try + { + string sqlWhere = " where 1=1 "; + if (!string.IsNullOrEmpty(FDepartId)) + sqlWhere += $" and FHMATERID ={FDepartId}"; + if (!string.IsNullOrEmpty(FDate)) + sqlWhere += $" and dadediff(d,FDate,) =0 "; + //寰呮帓浠诲姟 鍒濆鍖栧姞杞� where FNoScheduled > 0 鏈帓浜ф暟閲忓ぇ浜�0 + string sql = @"select * from Sc_WorkBillSortBillMain "; + DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; + if (dt.Rows.Count > 0) + { + while (this.Model.GetEntryRowCount("FDprwEntity") > 0) + { + this.Model.DeleteEntryRow("FDprwEntity", 0); + } + for (int i = 0; i < dt.Rows.Count; i++) + { + this.Model.CreateNewEntryRow("FDprwEntity"); + this.Model.SetValue("FSczy", dt.Rows[i]["FHSourceID"], i);//鐢熶骇璧勬簮 + this.Model.SetValue("FProOrderNo", dt.Rows[i]["FSCOrderNo"], i);//鐢熶骇璁㈠崟鍙� + this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"], i);//鐢熶骇璁㈠崟鏄庣粏琛屽彿 + this.Model.SetValue("FMATERIALID", dt.Rows[i]["FHMaterID"], i);//鐗╂枡浠g爜 + this.Model.SetValue("FSCOrderCount", dt.Rows[i]["FOrderQuantity"], i);//鐢熶骇璁㈠崟鏁� + //this.Model.SetValue("FFinishConut", dt.Rows[i]["FNOTE"], i);//瀹屽伐鏁� 锛堟病鏈夊搴斿瓧娈碉級 + this.Model.SetValue("FStoredCount", dt.Rows[i]["FHInstockQty"], i);//宸插叆搴撴暟 + this.Model.SetValue("FPriority", dt.Rows[i]["FHYX"], i);//浼樺厛绾� + this.Model.SetValue("FCapacity", dt.Rows[i]["FHWorkQty"], i);//浜ц兘 + this.Model.SetValue("FPlanBeginDate", dt.Rows[i]["FHPlanBeginDate"], i);//璁″垝寮�濮嬫棩鏈� + this.Model.SetValue("FPlanEndDate", dt.Rows[i]["FHPlanEndDate"], i);//璁″垝瀹屽伐鏃ユ湡 + this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"], i);//閿�鍞鍗曟暟閲� + //this.Model.SetValue("FCustormer", dt.Rows[i]["FNOTE"], i);//瀹㈡埛 锛堟病鏈夊搴斿瓧娈碉級 + this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSeOrderBillNo"], i);//閿�鍞鍗曞彿 + //this.Model.SetValue("FSalDeliveryDate", dt.Rows[i]["FNOTE"], i);//閿�鍞鍗曚氦璐ф湡 锛堟病鏈夊搴斿瓧娈碉級 + //this.Model.SetValue("FOrderRemake", dt.Rows[i]["FNOTE"], i);//璁㈠崟澶囨敞 锛堟病鏈夊搴斿瓧娈碉級 + this.Model.SetValue("FID", dt.Rows[i]["FID"], i);//鏃ヨ鍒掑伐鍗旾D + } + } + //鑷姩鎺掔▼ 鍒濆鍖栧姞杞� where FNoScheduled > 0 鏈帓浜ф暟閲忓ぇ浜�0 + if (dt.Rows.Count > 0) + { + while (this.Model.GetEntryRowCount("FZdpcEntity") > 0) + { + this.Model.DeleteEntryRow("FZdpcEntity", 0); + } + DateTime DateNow = DateTime.Now;//鑾峰彇褰撳墠鏃ユ湡 + for (int i = 0; i < dt.Rows.Count; i++) + { + this.Model.CreateNewEntryRow("FZdpcEntity"); + this.Model.SetValue("FSczyZD", dt.Rows[i]["FHSourceID"], i);//鐢熶骇璧勬簮 + this.Model.SetValue("FProOrderNoZD", dt.Rows[i]["FSCOrderNo"], i);//鐢熶骇璁㈠崟鍙� + this.Model.SetValue("FSRCBILLENTRYSEQZD", dt.Rows[i]["FSRCBILLENTRYSEQ"], i);//鐢熶骇璁㈠崟鏄庣粏琛屽彿 + this.Model.SetValue("FMATERIALIDZD", dt.Rows[i]["FHMaterID"], i);//鐗╂枡浠g爜 + this.Model.SetValue("FSCOrderCountZD", dt.Rows[i]["FOrderQuantity"], i);//鐢熶骇璁㈠崟鏁� + //this.Model.SetValue("FFinishConutZD", dt.Rows[i]["FNOTE"], i);//瀹屽伐鏁� 锛堟病鏈夊搴斿瓧娈碉級 + this.Model.SetValue("FNoScheduledCount", dt.Rows[i]["FNoScheduled"], i);//寰呮帓鏁� + this.Model.SetValue("FPriorityZD", dt.Rows[i]["FHYX"], i);//浼樺厛绾� + this.Model.SetValue("FCapacityZD", dt.Rows[i]["FHWorkQty"], i);//浜ц兘 + this.Model.SetValue("FIDZD", dt.Rows[i]["FID"], i);//鏃ヨ鍒掑伐鍗旾D + sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString(); + DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; + foreach (DataRow dr in _dt.Rows) + { + DateTime start = Convert.ToDateTime(DateNow.ToShortDateString()); + DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString()); + TimeSpan getDay = end.Subtract(start); + if (getDay.Days > 60) + continue; + this.Model.SetValue("FT" + getDay.Days.ToString(), dr["FHQTY"].ToString(), i);//鏃ヨ鍒掑伐鍗旻ID + if (dr["FHLockedSub"].ToString() == "1") + this.View.GetFieldEditor("FT" + getDay.Days.ToString(), i).Enabled = false; //鍗曟嵁浣撹閿佸畾瀛楁 + } + } + for (int m = 0; m <= 60; m++) + { + // this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString(); + this.View.GetControl("FT" + "" + m + "").SetValue(DateNow.AddDays(m).ToShortDateString()); + } + } + } + catch (Exception ex) + { + LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗�-椤甸潰灞曠ず 寰呮帓浠诲姟鎶涘嚭寮傚父锛�" + ex.Message.ToString()); + this.View.ShowErrMessage("閿欒锛�" + ex.Message.ToString()); + } + } + /// <summary> + /// 鐣岄潰涓嬫柟鈥滅敓浜ц鍗曗�濈殑椤电 + /// </summary> + /// <param name="FMaterialId">鐗╂枡</param> + /// <param name="FProOrderNo">鐢熶骇璁㈠崟鍙�</param> + public void ScddSearchList(string FMaterialId, string FProOrderNo) + { + try + { + string sqlWhere = " and 1=1 "; + if (!string.IsNullOrEmpty(FMaterialId)) + sqlWhere += $" and b.FMATERIALID ='{FMaterialId}'"; + if (!string.IsNullOrEmpty(FProOrderNo)) + sqlWhere += $" and a.FBILLNO ='{FProOrderNo}' "; + + //鐣岄潰涓嬫柟鈥滅敓浜ц鍗曗�濈殑椤电锛屽姞杞芥湭鎺掔▼宸插鏍哥殑鐢熶骇璁㈠崟 (娴嬭瘯鏈姞鏉′欢 鏇存敼鍚庡幓闄よ鏍囪) + string sql = @" +SELECT A.FBILLNO,B.FSEQ,B.FMATERIALID,B.FQTY,B.FPlanStartDate,b.FPlanFinishDate,b.FSaleOrderNo,c.FCustId,d.FQTY as FQTYXSDD ,d.FNOTE,d.FPLANDELIVERYDATE,e.FSCOrderNo +FROM T_PRD_MO a +LEFT JOIN T_PRD_MOENTRY b on a.FID = B.FID +left join T_SAL_ORDER c on b.FSaleOrderNo =c.FBILLNO +left join T_SAL_ORDERENTRY d on c.FID = d.FID and b.FMATERIALID = d.FMATERIALID +left join Sc_WorkBillSortBillMain e on b.FMATERIALID = e.FHMaterID and b.FSEQ = e.FSRCBILLENTRYSEQ and a.FBILLNO = e.FSCOrderNo +where ISNULL(e.FSCOrderNo,'')=''"; + sql += sqlWhere; + DataTable dt = DBServiceHelper.ExecuteDataSet(this.Context, sql).Tables[0]; + if (dt.Rows.Count > 0) + { + //this.Model.DeleteEntryData("FScddEntity"); + while (this.Model.GetEntryRowCount("FScddEntity") > 0) + { + this.Model.DeleteEntryRow("FScddEntity", 0); + } + for (int i = 0; i < dt.Rows.Count; i++) + { + this.Model.CreateNewEntryRow("FScddEntity"); + this.Model.SetValue("FSEQ", i + 1, i);//搴忓彿 + this.Model.SetValue("FProOrderNoSC", dt.Rows[i]["FBILLNO"], i);//鐢熶骇璁㈠崟鍙� + this.Model.SetValue("FSRCBILLENTRYSEQSC", dt.Rows[i]["FSEQ"], i);//鐢熶骇璁㈠崟鏄庣粏鍙� + this.Model.SetValue("FSCOrderCountSC", dt.Rows[i]["FQTY"], i);//鐢熶骇璁㈠崟鏁� + this.Model.SetValue("FPlanBeginDateSC", dt.Rows[i]["FPlanStartDate"], i);//璁″垝寮�宸ユ棩鏈� + this.Model.SetValue("FPlanEndDateSC", dt.Rows[i]["FPlanFinishDate"], i);//璁″垝瀹屽伐鏃ユ湡 + this.Model.SetValue("FSalOrderNoSC", dt.Rows[i]["FSaleOrderNo"], i);//閿�鍞鍗曞彿 + this.Model.SetValue("FMATERIALIDSC", dt.Rows[i]["FMATERIALID"], i);//鐗╂枡 + this.Model.SetValue("FCustormerSC", dt.Rows[i]["FCustId"], i);//瀹㈡埛 + this.Model.SetValue("FSalOrderCountSC", dt.Rows[i]["FQTYXSDD"], i);//閿�鍞鍗曟暟閲� + this.Model.SetValue("FSalDeliveryDateSC", dt.Rows[i]["FPLANDELIVERYDATE"], i);//閿�鍞鍗曚氦璐ф湡 + this.Model.SetValue("FOrderRemakeSC", dt.Rows[i]["FNOTE"], i);//璁㈠崟澶囨敞 + } + } + } + catch (Exception ex) + { + LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗�-椤甸潰灞曠ず 鐢熶骇璁㈠崟鎶涘嚭寮傚父锛�" + ex.Message.ToString()); + this.View.ShowErrMessage("閿欒锛�" + ex.Message.ToString()); + } + } /// <summary> /// 鐢熶骇璁㈠崟鏁版嵁鎺ㄥ埌寰呮帓浠诲姟鏍� /// </summary> @@ -109,7 +301,6 @@ i++; } } - /// <summary> /// 浜ц兘璁$畻 /// </summary> @@ -122,6 +313,7 @@ left join T_ENG_SHIFT c on b.FShiftId =c.FID where FDateStyle = 1 and FIsWorkTime = 1 and FCalUserType ='ENG_RepetitiveProductLine' +and DATEDIFF(D,getdate(),FDAY)>0 --鏉′欢涓� 宸ヤ綔鏃�+鏄惁鐢熶骇 == 1 "; ENG_WORKCALFULLDATA = DBServiceHelper.ExecuteDataSet(Context, _sql).ToModelList<ENG_WORKCALFULLDATA>(); @@ -168,9 +360,6 @@ } FSCOrderCount = FSCOrderCount - fqty; } - - //continue; - //鏍规嵁鐢熶骇璁㈠崟鍙峰拰鐗╂枡鏌ヨ鏄惁瀛樺湪鏄庣粏 +鐢熶骇璁㈠崟鏄庣粏琛屽彿 string sql = string.Format(@" /*dialect*/ @@ -205,6 +394,8 @@ JObject jsonModel = new JObject(); jsonModel.Add("FPreparatDate", DateTime.Now.ToString());//缂栧埗鏃ユ湡 + jsonModel.Add("FHPlanBeginDate", Convert.ToString(order["FPlanBeginDate"]));//璁″垝寮�濮嬫棩鏈� + jsonModel.Add("FHPlanEndDate", Convert.ToString(order["FPlanEndDate"]));//璁″垝瀹屽伐鏃ユ湡 jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(order["FSRCBILLENTRYSEQ"]));//鐢熶骇璁㈠崟鏄庣粏琛屽彿 jsonModel.Add("FSCOrderNo", Convert.ToString(order["FProOrderNo"])); //鐢熶骇璁㈠崟鍙稦SCOrderNo jsonModel.Add("FHSeOrderBillNo", Convert.ToString(order["FSalOrderNo"]));//閿�鍞鍗曞彿 @@ -221,7 +412,7 @@ jsonModel.Add("FHMaterID", new JObject() { ["Fnumber"] = Convert.ToString(((order["FMATERIALID"]) as DynamicObject)?["Number"].ToString()) });//鐗╂枡 jsonModel.Add("FHSourceID", new JObject() { ["Fnumber"] = Convert.ToString(((order["FSczy"]) as DynamicObject)?["Number"].ToString()) });//鐢熶骇璧勬簮 jsonModel.Add("FHWorkQty", Convert.ToString(order["FCapacity"])); ;//浜ц兘 - jsonModel.Add("FHYX", Convert.ToString(order["FPriority"])); ;//浼樺厛绾� + jsonModel.Add("FHYX", seq++); ;//浼樺厛绾� if (Convert.ToInt32(order["FID"]) > 0) jsonModel.Add("FID", Convert.ToString(order["FID"])); ;//鏃ヨ鍒掑伐鍗旾D JArray Entry = new JArray(); @@ -291,6 +482,76 @@ LogHelper.Error("鐢熶骇鎺掔▼鍗曞姩鎬佽〃鍗� 鎺掔▼鎸夐挳鐐瑰嚮鍔熻兘" + ex.Message.ToString()); } } + /// <summary> + /// 鑷姩鎺掔▼淇濆瓨鍔熻兘 + /// </summary> + public void ZdpcSave() + { + List<string> sqlList = new List<string>(); + string sql; + //鑾峰彇鍗曟嵁浣撲俊鎭� + Entity entity = this.View.BillBusinessInfo.GetEntity("FZdpcEntity"); + //鍗曟嵁浣撲俊鎭浆鎹负鍒楄〃闆嗗悎 + DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); + DateTime date = Convert.ToDateTime(DateTime.Now.ToString("d")); + string _result = ""; + //foreach (DynamicObject current in entityDataObjoct) + //{ + // if (Convert.ToInt32(current["FNoScheduled"]) < 0) + // _result += "搴忓彿锛�" + Convert.ToString(current["SEQ"]) + ",鏃ヨ鍒掓�绘暟閲忚秴鍑虹敓浜ц鍗曟暟閲�"; + //} + if (_result != "") + { + this.View.ShowErrMessage(_result); + return; + } + foreach (DynamicObject current in entityDataObjoct) + { + JObject jsonRoot = new JObject(); + jsonRoot.Add("Creator", ""); + jsonRoot.Add("NeedUpDateFields", new JArray()); + jsonRoot.Add("NeedReturnFields", new JArray()); + jsonRoot.Add("IsDeleteEntry", "false"); + jsonRoot.Add("SubSystemId", ""); + jsonRoot.Add("IsVerifyBaseDataField", ""); + JObject jsonModel = new JObject(); + jsonModel.Add("FID", Convert.ToString(current["FIDZD"])); + //jsonModel.Add("FOrderQuantity", Convert.ToString(current["FOrderQuantity"])); + //jsonModel.Add("FDayPlanQuantity", Convert.ToString(current["FDayPlanQuantity"])); + //jsonModel.Add("FNoScheduled", Convert.ToString(current["FNoScheduled"])); + sql = $" /*dialect*/ select FEntryID, FHMASTERDATE from SC_WORKBILLSORTBILLSub where FID={Convert.ToString(current["FIDZD"])} "; + List<DayPlanModel> dayPlanModel = new List<DayPlanModel>(); + dayPlanModel = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<DayPlanModel>(); + JArray Entry = new JArray(); + for (int i = 0; i <= 60; i++) + { + if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0") + continue; + JObject jsonFPOOrderEntry = new JObject(); + jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//涓绘棩鏈� + jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//鏃ヨ鍒掓暟閲� + List<DayPlanModel> _dayPlanModel = dayPlanModel.Where(x => x.FHMASTERDATE == date.AddDays(i)).ToList(); + if (_dayPlanModel.Count > 0) + { + jsonFPOOrderEntry.Add("FEntryID", _dayPlanModel.FirstOrDefault().FEntryID); ;//搴忓彿 + } + Entry.Add(jsonFPOOrderEntry); + } + jsonModel.Add("FEntity", Entry); + jsonRoot.Add("Model", jsonModel); + CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); + var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString()); + JObject saveObj = JObject.Parse(result); + string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); + if (saveIsSuc != "TRUE") + { + LogHelper.Error("鐢熶骇璁″垝骞冲彴淇濆瓨澶辫触:" + jsonRoot.ToString()); + this.View.ShowMessage("鏁版嵁鍌ㄥ瓨澶辫触锛佽鑱旂郴绠$悊鍛橈紒"); + } + } + + this.View.ShowMessage("鎿嶄綔鎴愬姛"); + } } } -- Gitblit v1.9.1