public List<FullHouse> QueryFullHouse(QueryHouseServiceForm form) { List<FullHouse> list = new List<FullHouse>(); ISqlMapper mapper = MapperHelper.GetMapper(); HouseDao dao = new HouseDao(mapper); House_CustomerDao hcdao = new House_CustomerDao(mapper); CustomerDao customerdao = new CustomerDao(mapper); BuildingDao buildingdao = new BuildingDao(mapper); RentFeeDao rfdao = new RentFeeDao(mapper); House_OtherFeeDao hofdao = new House_OtherFeeDao(mapper); OtherFeeDao ofdao = new OtherFeeDao(mapper); var house = dao.QueryFullHouse(form); var houseids = (from h in house select h.ID).ToList(); var hcs = hcdao.Query(new House_CustomerQueryForm { HouseOrRoomIDs = houseids }); var customerids = (from ho in hcs select ho.CustomerID).Distinct().ToList(); var customers = customerdao.Query(new CustomerQueryForm { IDs = customerids, Enabled = 1, IsDeleted = 0, }); var buildingids = (from h in house select h.BuildingID).Distinct().ToList(); var buidlings = buildingdao.Query(new BuildingQueryForm { IDs = buildingids }); var rentfees = rfdao.Query(new RentFeeQueryForm { HouseOrRoomIDs = houseids, Enabled = 1, IsDeleted = 0 }); var rentfeeids = (from rf in rentfees select rf.ID).ToList(); var hos = hofdao.Query(new House_OtherFeeQueryForm { HouseOrRoomIDs = houseids }); var otherfeeids = (from ho in hos select ho.OtherFeeID).Distinct().ToList(); var ofs = ofdao.Query(new OtherFeeQueryForm { IDs = otherfeeids }); foreach (var h in house) { FullHouse fh = new FullHouse { House = h, Customer = (from ho in hcs join c in customers on ho.CustomerID equals c.ID where ho.HouseOrRoomID.Equals(h.ID) && c.Type == (int)CustomerType.业主 select c).FirstOrDefault(), Building = buidlings.Find(t => t.ID.Equals(h.BuildingID)), RentFee = rentfees.Find(t => t.HouseOrRoomID.Equals(h.ID)), OtherFees = (from ho in hos join of in ofs on ho.OtherFeeID equals of.ID where ho.HouseOrRoomID.Equals(h.ID) select of).ToList(), Renter = (from ho in hcs join c in customers on ho.CustomerID equals c.ID where ho.HouseOrRoomID.Equals(h.ID) && c.Type == (int)CustomerType.租客 select c).FirstOrDefault(), }; list.Add(fh); } return list; }
public BillModel QuerySingle(string BillID) { ISqlMapper mapper = MapperHelper.GetMapper(); BillDao dao = new BillDao(mapper); OtherFeeDao ofdao = new OtherFeeDao(mapper); House_OtherFeeDao hodao = new House_OtherFeeDao(mapper); OtherFeeBillDao ofbdao = new OtherFeeBillDao(mapper); var bill = dao.QueryFullBill(new QueryFullBillServiceForm { ID = BillID }).FirstOrDefault(); BillModel model = new BillModel { Bill = bill, }; if (bill == null) return model; var house_otherfees = hodao.Query(new House_OtherFeeQueryForm { HouseOrRoomID = bill.HouseOrRoomID }); var otherfeeids = (from ho in house_otherfees select ho.OtherFeeID).ToList(); var otherfeebills = ofbdao.Query(new OtherFeeBillQueryForm { BillID = bill.ID, }); var otherfees = ofdao.Query(new OtherFeeQueryForm { IDs = otherfeeids }); var fullotherfeebills = new List<FullOtherFeeBill>(); foreach (var ho in house_otherfees) { FullOtherFeeBill ofb = new FullOtherFeeBill { House_OtherFee = ho, OtherFee = otherfees.Find(t => t.ID.Equals(ho.OtherFeeID)), OtherFeeBill = otherfeebills.Find(t => t.OtherFeeID.Equals(ho.OtherFeeID)), }; fullotherfeebills.Add(ofb); } model.OtherFeeBill = fullotherfeebills; return model; }
public List<OtherFee> Query(OtherFeeQueryForm form) { ISqlMapper mapper = MapperHelper.GetMapper(); OtherFeeDao dao = new OtherFeeDao(mapper); return dao.Query(form); }
public DataTable QueryFullBill(QueryFullBillServiceForm form) { #region 初始化数据 ISqlMapper mapper = MapperHelper.GetMapper(); BillDao dao = new BillDao(mapper); OtherFeeDao ofbll = new OtherFeeDao(mapper); OtherFeeBillDao ofbbll = new OtherFeeBillDao(mapper); var bills = dao.QueryFullBill(form); var billids = (from b in bills select b.ID).ToList(); var houseids = (from b in bills select b.HouseOrRoomID).ToList(); var otherfee = ofbll.Query(new OtherFeeQueryForm { }); var otherfeebills = ofbbll.Query(new OtherFeeBillQueryForm { BillIDs = billids }); var linkedOtherfeeBills = (from b in otherfeebills join o in otherfee on b.OtherFeeID equals o.ID select new { ID = b.ID, Fee = b.Fee, Name = o.Name, BillID = b.BillID, }).ToList(); #endregion #region 设置字段mapping List<ToDataTableMapping> list = new List<ToDataTableMapping> { new ToDataTableMapping { OrignalName = "Name", MappingName = "账单名称" }, new ToDataTableMapping { OrignalName = "ShouldPay",MappingName = "应收" }, new ToDataTableMapping { OrignalName = "Payed", MappingName = "已收" }, new ToDataTableMapping { OrignalName = "PayDay", MappingName="交租日期" }, new ToDataTableMapping { OrignalName = "HouseOrRoomID", MappingName="房间ID" }, new ToDataTableMapping { OrignalName = "ID", MappingName="ID" }, new ToDataTableMapping { OrignalName = "BuildingName", MappingName="楼栋名称" }, new ToDataTableMapping { OrignalName = "HouseName", MappingName = "房间名称" }, }; #endregion #region 组装数据 DataTable table = bills.ToDataTable(list); foreach (var of in otherfee) { if (!table.Columns.Contains(of.Name)) { DataColumn column = new DataColumn(of.Name, typeof(decimal)); column.DefaultValue = 0; table.Columns.Add(column); } } foreach (DataRow row in table.Rows) { foreach (var ofb in linkedOtherfeeBills) { row[ofb.Name] = ofb.Fee; } } #endregion return table; }