Files
zszq-trs/YLErpDAL/Modules/TradeMsgOutputModule/Company/DongWanPVPostionFileGenerateService.cs
T
2024-05-09 14:06:26 +08:00

71 lines
2.5 KiB
C#

using DotNetDBF;
using SocialExplorer.IO.FastDBF;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YLErp.Modules.TradeMsgOutputModule.Dto;
namespace YLErp.Modules.TradeMsgOutputModule.Company
{
/// <summary>
/// 东莞持仓PV文件生成服务
/// </summary>
public class DongWanPVPostionFileGenerateService: BaseDongWanFileGenerateService
{
private string _fileNamePrefix = "GXGTSXGZSJ";
public override GenerateDbfFileResult GenerateDbfFile(DateTime valueDate)
{
var result = new GenerateDbfFileResult();
var positionList = new TradePvOutputService().GetTradePositionPV<eod_trade_position>(valueDate);
if (positionList == null || positionList.Count == 0)
{
return result;
}
string filePath = "";
var dbffile = CreateFile(_fileNamePrefix, valueDate,out filePath);
positionList.ForEach(p =>
{
var orec = new DbfRecord(dbffile.Header) { AllowDecimalTruncate = true };
orec["cjrq"] = p.ValueDate.ToString("yyyy-MM-dd");
orec["htxh"] = p.TradeNumber;
orec["Ywlb"] = GetYWLBByTradeType(p.TradeType);
orec["qybdsy"] = p.EquitySubjectPV.ToString();
orec["gdlvsy"] = p.FixedInterestRatePV.ToString();
orec["htsyje"] = p.PV.ToString();
orec["Bmdm"] = GetBmdmByAssetGroupName(p.AssetUnitGroupName);
dbffile.Write(orec);
});
dbffile.Close();
var fileName = GetFileName(_fileNamePrefix, valueDate);
result.FileName = fileName;
//上传Ftp
result.FilePath = UploadFile(filePath, fileName);
return result;
}
protected override List<DbfColumn> GetDbfFileColumns()
{
return new List<DbfColumn> {
new DbfColumn("cjrq", DbfColumn.DbfColumnType.Date),
new DbfColumn("htxh", DbfColumn.DbfColumnType.Character,50,0),
new DbfColumn("Ywlb", DbfColumn.DbfColumnType.Character,6,0),
new DbfColumn("qybdsy", DbfColumn.DbfColumnType.Number,19,4),
new DbfColumn("gdlvsy", DbfColumn.DbfColumnType.Number,19,4),
new DbfColumn("htsyje", DbfColumn.DbfColumnType.Number,19,4),
new DbfColumn("Bmdm", DbfColumn.DbfColumnType.Character,10,0)
};
}
}
}