using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CY.BLL; using CY.BLL.Sys; using CY.Model; using CY.Infrastructure.Query; using CY.Infrastructure.Common; using CY.BLL.EC; using CY.Model.Inquiry; namespace CY.WebForm.Pages.business { //吴辉 //行政管理 public partial class DeliverWorkBookPandian : BasePage { CoreCmsPlanOrderBLL bll_CoreCmsPlanOrderBLL = null; CoreCmsPlanOrderItemBLL bll_CoreCmsPlanOrderItemBLL = null; CoreCmsPlanOrderFahuoBLL bll_coreCmsPlanOrderFahuoBLL = null; EC_OrderBasicBLL _eC_OrderBasicBLL = null; EC_OrderPrintParameterBLL _eC_OrderPrintParameterBLL = null; //初始化 public DeliverWorkBookPandian() { bll_CoreCmsPlanOrderBLL = new CoreCmsPlanOrderBLL(); bll_CoreCmsPlanOrderItemBLL = new CoreCmsPlanOrderItemBLL(); bll_coreCmsPlanOrderFahuoBLL = new CoreCmsPlanOrderFahuoBLL(); _eC_OrderBasicBLL = new EC_OrderBasicBLL(); _eC_OrderPrintParameterBLL = new EC_OrderPrintParameterBLL(); } //页面加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindList(); } } //绑定数据 private void BindList() { string orderIdStr = Request["orderId"]; this.hideOrderId.Value = orderIdStr; var eC_OrderBasic = _eC_OrderBasicBLL.SelectModelById(orderIdStr.ToInt32().Value); if (eC_OrderBasic != null) { spanBuyerName.InnerText = eC_OrderBasic.BuyerName; } //var cmsPlanOrderItems = bll_CoreCmsPlanOrderItemBLL.GetModelsByZongOrderid(orderIdStr.ToInt32().Value); var coreDeliverOrderItems = bll_CoreCmsPlanOrderItemBLL.GetDeliverModelsByZongOrderid(orderIdStr.ToInt32().Value); var coreCmsPlanOrderFahuos = bll_coreCmsPlanOrderFahuoBLL.GetModelsByOrderid(orderIdStr.ToInt32().Value); ////订单数量统计 //var cmsPlanOrderItemsgroup = cmsPlanOrderItems.GroupBy(p => new { p.name, p.specification }) // 多个字段作为匿名类型分组键 //.Select(g => new CoreCmsPlanOrderItem //{ // // 分组字段 // name = g.Key.name, // specification = g.Key.specification, // // 统计结果 // //Count = g.Count(), // 每组人数 // //AverageSalary = g.Average(p => p.Salary), // 平均工资 // nums = g.Sum(p => p.nums) // 工资总和 //}).ToList(); EC_OrderPrintParameter _eC_OrderPrintParameter = _eC_OrderPrintParameterBLL.GetModel(orderIdStr.ToInt32().Value); InquiryCommonModel _inquiryCommonModel = null; if (null == _eC_OrderPrintParameter) { _inquiryCommonModel = new InquiryCommonModel(); } else { _inquiryCommonModel = SerializationHelper.DeSerialize(typeof(InquiryCommonModel), _eC_OrderPrintParameter.PrintParameter) as InquiryCommonModel; } var inquiryWorkBookModels = _inquiryCommonModel.InquiryWorkBookList.OrderBy(x => x.WorkBookSizeTxt).ThenBy(x => x.WorkBookNameTxt); var cmsPlanOrderItemsgroup = new List(); foreach (var inquiryWorkBookModel in inquiryWorkBookModels) { var coreCmsPlanOrder = new CoreCmsPlanOrderItem(); // biaotou += " " + inquiryWorkBookModel.WorkBookSizeTxt + inquiryWorkBookModel.WorkBookNameTxt + " "; coreCmsPlanOrder.name = inquiryWorkBookModel.WorkBookNameTxt; coreCmsPlanOrder.specification = inquiryWorkBookModel.WorkBookSizeTxt; var sss = inquiryWorkBookModel.WorkBookCount.ToInt32(); coreCmsPlanOrder.nums = sss.HasValue ? sss.Value : 0; cmsPlanOrderItemsgroup.Add(coreCmsPlanOrder); } //发货数量统计 var coreCmsPlanOrderFahuosgroup = coreCmsPlanOrderFahuos.GroupBy(p => new { p.name, p.specification }) // 多个字段作为匿名类型分组键 .Select(g => new CoreCmsPlanOrderFahuo { // 分组字段 name = g.Key.name, specification = g.Key.specification, // 统计结果 //Count = g.Count(), // 每组人数 //AverageSalary = g.Average(p => p.Salary), // 平均工资 nums = g.Sum(p => p.nums) // 工资总和 }).ToList(); //送货数量统计 var coreDeliverOrderItemsgroup = coreDeliverOrderItems.GroupBy(p => new { p.ZYBName, p.ZYBSpecification }) // 多个字段作为匿名类型分组键 .Select(g => new CoreDeliverOrderItem { // 分组字段 ZYBName = g.Key.ZYBName, ZYBSpecification = g.Key.ZYBSpecification, // 统计结果 //Count = g.Count(), // 每组人数 //AverageSalary = g.Average(p => p.Salary), // 平均工资 Number = g.Sum(p => p.Number), // 工资总和 LessNumber = g.Sum(p => p.LessNumber) }).ToList(); foreach (var cmsPlanOrderItem in cmsPlanOrderItemsgroup) { var coreCmsPlanOrderFahuo = coreCmsPlanOrderFahuosgroup.FirstOrDefault(x => x.name == cmsPlanOrderItem.name && x.specification == cmsPlanOrderItem.specification); if (coreCmsPlanOrderFahuo != null) { cmsPlanOrderItem.fahuonums = coreCmsPlanOrderFahuo.nums; } cmsPlanOrderItem.weifahuonums = cmsPlanOrderItem.nums - cmsPlanOrderItem.fahuonums; var coreDeliverOrderItem = coreDeliverOrderItemsgroup.FirstOrDefault(x => x.ZYBName == cmsPlanOrderItem.name && x.ZYBSpecification == cmsPlanOrderItem.specification); if (coreDeliverOrderItem != null) { cmsPlanOrderItem.songhuonums = coreDeliverOrderItem.Number; cmsPlanOrderItem.LessNumber = coreDeliverOrderItem.LessNumber; } cmsPlanOrderItem.kucunnums = cmsPlanOrderItem.fahuonums - cmsPlanOrderItem.songhuonums; cmsPlanOrderItem.weisonghuonums = cmsPlanOrderItem.nums - cmsPlanOrderItem.songhuonums - cmsPlanOrderItem.LessNumber; cmsPlanOrderItem.DaishengchanNumber = cmsPlanOrderItem.weisonghuonums - cmsPlanOrderItem.kucunnums; } var cmsPlanOrderItemsgroupsssss = new List(); for (int i = 0; i < cmsPlanOrderItemsgroup.Count; i++) { cmsPlanOrderItemsgroupsssss.Add(cmsPlanOrderItemsgroup[i]); if (i == (cmsPlanOrderItemsgroup.Count - 1) || cmsPlanOrderItemsgroup[i].specification != cmsPlanOrderItemsgroup[i + 1].specification) { var coreCmsPlanOrderItem = new CoreCmsPlanOrderItem(); coreCmsPlanOrderItem.specification = cmsPlanOrderItemsgroup[i].specification; coreCmsPlanOrderItem.name = "合计"; var coreCmsPlanOrderItems = cmsPlanOrderItemsgroup.Where(x => x.specification == cmsPlanOrderItemsgroup[i].specification); coreCmsPlanOrderItem.nums = coreCmsPlanOrderItems.Sum(x => x.nums); coreCmsPlanOrderItem.fahuonums = coreCmsPlanOrderItems.Sum(x => x.fahuonums); coreCmsPlanOrderItem.weifahuonums = coreCmsPlanOrderItems.Sum(x => x.weifahuonums); coreCmsPlanOrderItem.songhuonums = coreCmsPlanOrderItems.Sum(x => x.songhuonums); coreCmsPlanOrderItem.kucunnums = coreCmsPlanOrderItems.Sum(x => x.kucunnums); coreCmsPlanOrderItem.weisonghuonums = coreCmsPlanOrderItems.Sum(x => x.weisonghuonums); coreCmsPlanOrderItem.LessNumber = coreCmsPlanOrderItems.Sum(x => x.LessNumber); coreCmsPlanOrderItem.DaishengchanNumber = coreCmsPlanOrderItems.Sum(x => x.DaishengchanNumber); cmsPlanOrderItemsgroupsssss.Add(coreCmsPlanOrderItem); } } this.RepClientList.DataSource = cmsPlanOrderItemsgroupsssss; this.RepClientList.DataBind(); } } }