using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using Core.Mes.Client.Comm.Attribute; using Core.Mes.Client.Comm.Tool; namespace Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity { [Serializable] public class PlnSteelforOrdNewEntityAndMerge : PlnSteelforOrdNewEntity { private string mergeNo; public string MergeNo { get { return mergeNo; } set { mergeNo = value; } } private List mergeList; public List MergeList { get { return mergeList; } set { mergeList = value; } } private List mergeListAll; public List MergeListAll { get { return mergeListAll; } set { mergeListAll = value; } } private List mergeListForSave; public List MergeListForSave { get { return mergeListForSave; } set { mergeListForSave = value; } } /* private List MergeListForSave { get { if (mergeList == null) return null; return mergeList.GroupBy(p => new { p.ProPlanId, p.GxPlanNo }) .Select(entities => { var PlnSteelforMergeEntity = entities.FirstOrDefault(); PlnSteelforMergeEntity.TotMumM = entities.Sum(p => p.TotMumM); PlnSteelforMergeEntity.TotWeightM = entities.Sum(p => p.TotWeightM); return PlnSteelforMergeEntity; }).ToList(); } }*/ private string steelcode = ""; /// /// 钢级(牌号)代码 /// [Description("钢级(牌号)代码")] [Nullable(true)] [DataLength(10)] public string Steelcode { get { return steelcode; } set { steelcode = value; } } private string produccode = ""; /// /// 品名代码 /// [Description("品名代码")] [Nullable(true)] [DataLength(20)] public string Produccode { get { return produccode; } set { produccode = value; } } private string ifMonitorLg = ""; /// /// 是否炼钢监制 /// [Description("是否炼钢监制")] [Nullable(true)] [DataLength(10)] public string IfMonitorLg { get { return ifMonitorLg; } set { ifMonitorLg = value; } } public void Update() { MergeList = MergeList == null ? null : MergeList.GroupBy(p => new { p.ProPlanId, p.GxPlanNo }) .Select(entities => { var PlnSteelforMergeEntity = entities.FirstOrDefault(); PlnSteelforMergeEntity.TotMumM = entities.Sum(p => p.TotMumM); PlnSteelforMergeEntity.TotWeightM = entities.Sum(p => p.TotWeightM); return PlnSteelforMergeEntity; }).ToList(); if (MergeList != null) { MergeList = MergeList.Where(p => p.TotMumM != null && int.Parse(p.TotMumM.ToString()) > 0).ToList(); } if (MergeList != null && MergeList.Any()) { ProPlanId = ""; GxPlanNo = ""; Cic = ""; Pic = ""; Sic = ""; Dic = ""; OrderNo = ""; FinalUserDesc = ""; PrdcrNo = ""; PdeptName = ""; PrdcrMan = ""; TotMumM = 0; TotWeightM = 0; StateLk = MergeList[0].StateLk; foreach (PlnSteelforMergeEntity PlnSteelforMergeEntity in MergeList.GroupBy(p => new {p.ProPlanId, p.GxPlanNo}) .Select(entities => { var PlnSteelforMergeEntity = entities.FirstOrDefault(); PlnSteelforMergeEntity.TotMumM = entities.Sum(p => p.TotMumM); PlnSteelforMergeEntity.TotWeightM = entities.Sum(p => p.TotWeightM); return PlnSteelforMergeEntity; }).ToList()) { ProPlanId = (""==ProPlanId?"" :(ProPlanId + ",")) + PlnSteelforMergeEntity.ProPlanId; GxPlanNo = ("" == GxPlanNo ? "" : (GxPlanNo + ",")) + PlnSteelforMergeEntity.GxPlanNo; if (!Cic.Contains(PlnSteelforMergeEntity.Cic)) { Cic =( Cic ==""?"":Cic + ",") + PlnSteelforMergeEntity.Cic; } if (!Pic.Contains(PlnSteelforMergeEntity.Pic)) { Pic = (Pic == "" ? "" : Pic + ",") + PlnSteelforMergeEntity.Pic; } if (!Sic.Contains(PlnSteelforMergeEntity.Sic)) { Sic = (Sic == "" ? "" : Sic + ",") +PlnSteelforMergeEntity.Sic; } if (!Dic.Contains(PlnSteelforMergeEntity.Dic)) { Dic = (Dic == "" ? "" : Dic + ",") + PlnSteelforMergeEntity.Dic; } if (!OrderNo.Contains(PlnSteelforMergeEntity.OrderNo)) { OrderNo = (OrderNo == "" ? "" : OrderNo + ",") + PlnSteelforMergeEntity.OrderNo; } if (!FinalUserDesc.Contains(PlnSteelforMergeEntity.FinalUserDesc)) { FinalUserDesc = (FinalUserDesc == "" ? "" : FinalUserDesc + ",") + PlnSteelforMergeEntity.FinalUserDesc; } if (!PrdcrNo.Contains(PlnSteelforMergeEntity.PrdcrNo)) { PrdcrNo = (PrdcrNo == "" ? "" : PrdcrNo + ",") + PlnSteelforMergeEntity.PrdcrNo; } if (!PdeptName.Contains(PlnSteelforMergeEntity.PdeptName)) { PdeptName = (PdeptName == "" ? "" : PdeptName + ",") + PlnSteelforMergeEntity.PdeptName; } if (!PrdcrMan.Contains(PlnSteelforMergeEntity.PrdcrMan)) { PrdcrMan = (PrdcrMan == "" ? "" : PrdcrMan + ",") + PlnSteelforMergeEntity.PrdcrMan; } TotMumM = TotMumM + PlnSteelforMergeEntity.TotMumM; TotWeightM = TotWeightM + PlnSteelforMergeEntity.TotWeightM; // if (PlnSteelforMergeEntity.IfMonitorLg == "1") IfMonitorLg = "1"; } if (MergeList.Count == 1) MergeList = null; } } public void UpdateSaveData() { MergeListAll = (MergeList == null || !MergeList.Any()) ? new DataSourceList() {GetSelfMergeEntity()} : MergeList; mergeListForSave = (MergeList == null || !MergeList.Any()) ? null : MergeList.GroupBy(p => new {p.ProPlanId, p.GxPlanNo}) .Select(entities => { var PlnSteelforMergeEntity = entities.FirstOrDefault(); PlnSteelforMergeEntity.TotMumM = entities.Sum(p => p.TotMumM); PlnSteelforMergeEntity.TotWeightM = entities.Sum(p => p.TotWeightM); return PlnSteelforMergeEntity; }).ToList(); if (MergeListForSave != null && MergeListForSave.Count() == 1) MergeListForSave = null; } public void Merge(PlnSteelforOrdNewEntityAndMerge TargetEntity) { if (MergeList == null || MergeList.Count <= 0) MergeList = new List() {GetSelfMergeEntity()}; MergeList.AddRange( TargetEntity.MergeList == null || TargetEntity.MergeList.Count <= 0 ? new List() { TargetEntity.GetSelfMergeEntity() } : TargetEntity.MergeList ); Update(); /* if (TargetEntity.MergeList == null || TargetEntity.MergeList.Count <= 0) { if (MergeList == null || MergeList.Count <= 0) { if (ProPlanId == TargetEntity.ProPlanId && GxPlanNo == TargetEntity.GxPlanNo) { TotMumM += TargetEntity.TotMumM; TotWeightM += TargetEntity.TotWeightM; } else { MergeList = new List { GetSelfMergeEntity(), TargetEntity.GetSelfMergeEntity() }; Update(); } } else { } } else { }*/ } private PlnSteelforMergeEntity GetSelfMergeEntity() { PlnSteelforMergeEntity selfMergeEntity = new PlnSteelforMergeEntity { MergeSeq = 1, ProPlanId = ProPlanId, GxPlanNo = GxPlanNo, LenGpSingle = LenGpSingle, CutNumGp = CutNumGp, WeightGpOne = WeightGpOne, TotMumM = TotMumM, TotWeightM = TotWeightM, Cic = Cic, Pic = Pic, Sic = Sic, Dic = Dic, OrderNo = OrderNo, FinalUserDesc = FinalUserDesc, Steelcode = Steelcode, Steelname = Steelname, Produccode = Produccode, Producname = Producname, IfMonitorLg = IfMonitorLg, PrdcrNo = PrdcrNo, PdeptName = PdeptName, PrdcrMan = PrdcrMan, Furnaceno = Furnaceno, Sequenceno = Sequenceno, StateLk = StateLk }; return selfMergeEntity; } } }