using BaseOUDAL; using YLErp.Commons; using YLErp.Configuration.Enums; namespace YLErp.Modules.ClientModule { public class TradeMarketReportConfigureService : YLBaseService { public TradeMarketReportConfigureService(OptUserInfo userInfo) : base(userInfo) { } public void SaveTradeMarketReportConfigure(TradeMarketReportConfigure tradeMarketReportConfigure) { var dbTradeMarketReportConfigure = new TradeMarketReportConfigure(); if (tradeMarketReportConfigure.ClientName == "全部") { dbTradeMarketReportConfigure = DbContext.tradeMarketReport_Configure.Where(o => o.ClientId == 0 || o.ClientId == null).FirstOrDefault(); if(dbTradeMarketReportConfigure == null) { dbTradeMarketReportConfigure = new TradeMarketReportConfigure(); DbContext.tradeMarketReport_Configure.Add(dbTradeMarketReportConfigure); } dbTradeMarketReportConfigure.TemplateId = tradeMarketReportConfigure.TemplateId; dbTradeMarketReportConfigure.Remarks = tradeMarketReportConfigure.Remarks; dbTradeMarketReportConfigure.OptId = UserId; dbTradeMarketReportConfigure.OptName = UserName; dbTradeMarketReportConfigure.OptDate = DateTime.Now; } else { if (tradeMarketReportConfigure.id != 0) { dbTradeMarketReportConfigure = DbContext.tradeMarketReport_Configure.Find(tradeMarketReportConfigure.id); if (dbTradeMarketReportConfigure == null) { throw new ServiceException("未找到该记录"); } dbTradeMarketReportConfigure.ClientId = tradeMarketReportConfigure.ClientId; dbTradeMarketReportConfigure.TemplateId = tradeMarketReportConfigure.TemplateId; dbTradeMarketReportConfigure.Remarks = tradeMarketReportConfigure.Remarks; dbTradeMarketReportConfigure.OptId = UserId; dbTradeMarketReportConfigure.OptName = UserName; dbTradeMarketReportConfigure.OptDate = DateTime.Now; } else { dbTradeMarketReportConfigure = DbContext.tradeMarketReport_Configure.Where(o => o.ClientId == tradeMarketReportConfigure.ClientId).FirstOrDefault(); if (dbTradeMarketReportConfigure != null) { dbTradeMarketReportConfigure.ClientId = tradeMarketReportConfigure.ClientId; dbTradeMarketReportConfigure.TemplateId = tradeMarketReportConfigure.TemplateId; dbTradeMarketReportConfigure.Remarks = tradeMarketReportConfigure.Remarks; dbTradeMarketReportConfigure.OptId = UserId; dbTradeMarketReportConfigure.OptName = UserName; dbTradeMarketReportConfigure.OptDate = DateTime.Now; } else { dbTradeMarketReportConfigure = new TradeMarketReportConfigure(); dbTradeMarketReportConfigure.ClientId = tradeMarketReportConfigure.ClientId; dbTradeMarketReportConfigure.TemplateId = tradeMarketReportConfigure.TemplateId; dbTradeMarketReportConfigure.Remarks = tradeMarketReportConfigure.Remarks; dbTradeMarketReportConfigure.OptId = UserId; dbTradeMarketReportConfigure.OptName = UserName; dbTradeMarketReportConfigure.OptDate = DateTime.Now; DbContext.tradeMarketReport_Configure.Add(dbTradeMarketReportConfigure); } } } DbContext.SaveChanges(); } public void AddTradeMarketReportConfigure(TradeMarketReportConfigureAddReq configureAddReq) { if (configureAddReq.ClientId.Length > 0) { List configureList = new List(); for (int i = 0; i < configureAddReq.ClientId.Length; i++) { TradeMarketReportConfigure dbTradeMarketReportConfigure = new TradeMarketReportConfigure(); dbTradeMarketReportConfigure.ClientId = configureAddReq.ClientId[i]; dbTradeMarketReportConfigure.TemplateId = configureAddReq.TemplateId; dbTradeMarketReportConfigure.Remarks = configureAddReq.Remarks; dbTradeMarketReportConfigure.OptId = UserId; dbTradeMarketReportConfigure.OptName = UserName; dbTradeMarketReportConfigure.OptDate = DateTime.Now; configureList.Add(dbTradeMarketReportConfigure); } DbContext.tradeMarketReport_Configure.AddRange(configureList); } } public bool IsShowMarginByTradeMarketReportConfigure(int clientId) { bool IsShowMargin = false; var tradeMarketReportConfigureModel= DbContext.tradeMarketReport_Configure.Where(o => o.ClientId == clientId).FirstOrDefault(); if (tradeMarketReportConfigureModel != null) { switch (tradeMarketReportConfigureModel.TemplateId) { case TemplateType.HasMarginColumn: IsShowMargin = true; break; case TemplateType.NotHasMarginColumn: IsShowMargin = false; break; } } else { tradeMarketReportConfigureModel = DbContext.tradeMarketReport_Configure.Where(o => o.ClientId == null).FirstOrDefault(); if (tradeMarketReportConfigureModel!=null) { switch (tradeMarketReportConfigureModel.TemplateId) { case TemplateType.HasMarginColumn: IsShowMargin = true; break; case TemplateType.NotHasMarginColumn: IsShowMargin = false; break; } } else { throw new Exception("结算报告配置,找不到默认全部配置,请在报告中配置全部及模板!"); } } return IsShowMargin; } public HandleResult ImportTradeMarketReportConfigure(Stream stream) { var rows = new ExcelHelper().ExcelToDataTable(stream, null, true); var clientNumber = string.Empty; TradeMarketReportConfigure record; var records = new List(); var rowNum = 0; for (var i = 0; i < rows.Rows.Count; i++) { rowNum = i + 1; record = new TradeMarketReportConfigure(); for (var j = 0; j < rows.Columns.Count; j++) { switch (rows.Columns[j].ColumnName) { case "客户名称": record.ClientName = rows.Rows[i][j].ToString(); break; case "模板": if (string.IsNullOrWhiteSpace(rows.Rows[i][j].ToString())) { return "第" + rowNum + "行模板不能为空,导入失败"; } else if (rows.Rows[i][j].ToString() == "含持仓预付金列") { record.TemplateId = TemplateType.HasMarginColumn; } else if (rows.Rows[i][j].ToString() == "不含持仓预付金列") { record.TemplateId = TemplateType.NotHasMarginColumn; } else { return "第" + rowNum + "行其他收支格式不对,导入失败"; } break; case "备注": if (string.IsNullOrWhiteSpace(rows.Rows[i][j].ToString())) { record.Remarks = ""; } else { record.Remarks = rows.Rows[i][j].ToString(); } break; default: break; } } if (string.IsNullOrWhiteSpace(record.ClientName)) { return "第" + rowNum + "行客户不能为空,导入失败"; } else { if (record.ClientName != "全部") { var rModle = records.Find(l => l.ClientName.Equals(record.ClientName)); if (rModle != null) { return "第" + rowNum + "行在适用客户重复,导入失败"; } var client = ClientDataQueryService.GetClient(record.ClientName); if (client == null) { return "第" + rowNum + "行客户不存在,导入失败"; } else { record.ClientId = client.id; } } } records.Add(record); } if (records.Count() > 0) { foreach (var item in records) { SaveTradeMarketReportConfigure(item); } } else { return "未在文件中找到记录"; } return HandleResult.Success; } public void DeleteTradeMarketReportConfigure(int id) { var model = DbContext.tradeMarketReport_Configure.FirstOrDefault(l => l.id == id); if (model == null) throw new ServiceException("找不到该条数据"); else { DbContext.tradeMarketReport_Configure.Remove(model); } DbContext.SaveChanges(); } public SearchListResult SearchList(TradeMarketReportConfigureReq req) { var query = from source in DbContext.tradeMarketReport_Configure select source; if (req.ClientId != null) { query = query.Where(d => d.ClientId == req.ClientId); } if (string.IsNullOrEmpty(req.sidx)) { req.sidx = "ClientId"; req.sord = "asc"; } if(req.sidx == "TemplateName") { req.sidx = "TemplateId"; } if(req.sidx == "ClientName") { req.sidx = "ClientId"; } return query.ToSearchList(req); ; } public class TradeMarketReportConfigureReq : BaseSearchReq { public int? ClientId { get; set; } } public class TradeMarketReportConfigureAddReq : BaseSearchReq { public int[] ClientId { get; set; } public TemplateType TemplateId { get; set; } public string Remarks { get; set; } } } }