127 lines
5.1 KiB
C#
127 lines
5.1 KiB
C#
using System.Data;
|
|
using YLErp.Configuration.Enums;
|
|
using YLErp.Modules.UnderlyingModule;
|
|
using YLErp.Office.ExcelModule;
|
|
|
|
namespace YLErp.Web.Controllers
|
|
{
|
|
public class StockBlackWhiteController : BaseController
|
|
{
|
|
|
|
public ActionResult StockBlackWhiteList(int tabIndex = (int)StockBlackWhiteEnum.黑名单)
|
|
{
|
|
ViewBag.TabIndex = tabIndex;
|
|
return View();
|
|
}
|
|
public ActionResult AddStockBlackWhite()
|
|
{
|
|
return View(new StockBlackWhite());
|
|
}
|
|
public JsonResult StockBlackWhiteAddJson(StockBlackWhite data, bool checkStatus)
|
|
{
|
|
new StockBlackWhiteService(CurUser).StockBlackWhiteAddJson(new List<StockBlackWhite> { data }, checkStatus);
|
|
return JsonSuccess();
|
|
}
|
|
public JsonResult StockBlackWhiteQuery(StockBlackWhiteQuery req)
|
|
{
|
|
var sList = new StockBlackWhiteService(CurUser).SearchList(req, req.BlackWhiteState == 1);
|
|
return Json(sList);
|
|
}
|
|
public FileContentResult StockBlackWhiteExport(StockBlackWhiteQuery req)
|
|
{
|
|
req.page = 1;
|
|
req.rows = 100000;
|
|
SearchListResult<StockBlackWhite> sList = null;
|
|
try
|
|
{
|
|
sList = new StockBlackWhiteService(CurUser).SearchList(req);
|
|
var templateFile = OtcAppContext.MapPath("~/App_Docs/导出模板/个股黑(白)名单导出模板.xlsx");
|
|
var fileDownloadName = $"{(req.BlackWhiteState == 0 ? "个股黑名单" : "个股白名单")}_{DateTime.Now:yyyyMMddhhmmss}.xlsx";
|
|
var buffer =
|
|
ExcelGenerator.UseTemplateGenerator(templateFile)
|
|
.AddVariable(
|
|
new
|
|
{
|
|
optionList = sList.rows.Where(O => O.LimitRange == LimitRangeEnum.All || O.LimitRange == LimitRangeEnum.Option),
|
|
swapList = sList.rows.Where(O => O.LimitRange == LimitRangeEnum.All || O.LimitRange == LimitRangeEnum.Swap),
|
|
})
|
|
.GenerateBytes();
|
|
return File(buffer, xlsxMimeType, fileDownloadName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("导出失败", ex);
|
|
}
|
|
}
|
|
|
|
public static List<SelectListItem> GetAllStockBlackWhiteType()
|
|
{
|
|
var AllClientType = new List<SelectListItem>()
|
|
{
|
|
new SelectListItem(){
|
|
Text = StockBlackWhiteEnum.黑名单.ToString(),
|
|
Value =((int)StockBlackWhiteEnum.黑名单).ToString()
|
|
},
|
|
new SelectListItem(){
|
|
Text = StockBlackWhiteEnum.白名单.ToString(),
|
|
Value =((int)StockBlackWhiteEnum.白名单).ToString()
|
|
}
|
|
};
|
|
return AllClientType;
|
|
}
|
|
public static List<SelectListItem> GetAllLimitRangeType()
|
|
{
|
|
var AllClientType =
|
|
EnumHelper.GetDescriptionsByEnum(typeof(LimitRangeEnum))
|
|
.Select(O => new SelectListItem() { Text = O.Key, Value = O.Value })
|
|
.ToList();
|
|
return AllClientType;
|
|
}
|
|
public ActionResult DeleteStockBlackWhite(IEnumerable<int> optionIds, IEnumerable<int> swapIds, int blackWhiteState)
|
|
{
|
|
if ((optionIds == null || !optionIds.Any()) && (swapIds == null || !swapIds.Any()))
|
|
{
|
|
return JsonError("没有要删除的标的");
|
|
}
|
|
var service = new StockBlackWhiteService(CurUser);
|
|
if (optionIds?.Any() == true)
|
|
{
|
|
service.DeleteStockBlackWhite(optionIds, LimitRangeEnum.Option, blackWhiteState);
|
|
}
|
|
if (swapIds?.Any() == true)
|
|
{
|
|
service.DeleteStockBlackWhite(swapIds, LimitRangeEnum.Swap, blackWhiteState);
|
|
}
|
|
return JsonSuccess("删除成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 导入个股黑白名单
|
|
/// </summary>
|
|
[HttpPost]
|
|
public ActionResult UploadSettlementBill(int blackWhiteState, bool checkStatus)
|
|
{
|
|
try
|
|
{
|
|
var file = Request.Form.Files[0];
|
|
if (file == null || string.IsNullOrWhiteSpace(file.FileName))
|
|
{
|
|
return JsonError("未获取上传文件");
|
|
}
|
|
var fileExtension = Path.GetExtension(file.FileName);
|
|
using var stream = file.OpenReadStream();
|
|
var Result = new StockBlackWhiteService(CurUser).ImportStockBlackWhitePublic(stream, blackWhiteState, checkStatus);
|
|
return JsonSuccess("导入成功");
|
|
}
|
|
catch (ServiceException ex)
|
|
{
|
|
return JsonError(ex.Message);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogFactory.GetLogger("导入个股黑白名单").Error("导入黑白名单出错", ex);
|
|
return JsonError(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
} |