Files
zszq-trs/YLErpDAL/Modules/ClientModule/TradeMarketReportConfigureService.cs
2024-05-09 14:06:26 +08:00

279 lines
12 KiB
C#

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<TradeMarketReportConfigure> configureList = new List<TradeMarketReportConfigure>();
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<TradeMarketReportConfigure>();
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<TradeMarketReportConfigure> 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; }
}
}
}