279 lines
12 KiB
C#
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; }
|
|
}
|
|
}
|
|
}
|