using System.Collections;
using Aspose.Cells;
using Microsoft.AspNetCore.Mvc;
using Estsh.Core.Services.IServices;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using System.Text.Json;
using Estsh.Core.Controllers;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Util;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:BOM查询
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Web.Controllers
{
public class BOMSearchController : BaseController
{
private IBOMSearchService service;
public BOMSearchController(IBOMSearchService _service)
{
service = _service;
}
//
// GET: /BOMSearchController/
public ActionResult Index()
{
return View();
}
///
/// 获取BOM数据列表
///
///
///
///
///
///
public ActionResult getListByPage(String partNo,string partSpec, string itemPartNo,string itemPartSpec, Pager pager, String direction, String sort, string enabled = "Y")
{
string factoryId = CurrentEmp.FactoryId.ToString();
Hashtable result = new Hashtable();
result.Add("pager.pageNo", pager.pageNo);
Hashtable dataHt = this.service.getListByPage(partNo, partSpec, itemPartNo, itemPartSpec, enabled, factoryId, pager, direction, sort);
result.Add("rows", dataHt["dataList"]);
result.Add("pager.totalRows", dataHt["totalCount"]);
result.Add("sort", sort);
result.Add("direction", direction);
return Json(result);
}
#region 过滤零件号
public ActionResult GetPart_no(string q)
{
List list = filePart(q);
return writeResult(list);
}
///
/// 过滤零件号
///
///
///
public List filePart(string key)
{
Hashtable autoComplateList = GetItemPart(key);
List result = new List();
foreach (System.Collections.DictionaryEntry item in autoComplateList)
{
if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper()))
{
result.Add(item.Value.ToString());
}
}
return result;
}
///
/// 查询零件号
///
///
///
public Hashtable GetItemPart(string key)
{
List autoComplateList = new List();
Hashtable result = new Hashtable();
try
{
List dt = service.GetPartInfo(key);
for (int i = 0; i < dt.Count; i++)
{
result.Add(dt[i].PartId.ToString(), dt[i].PartNo.ToString());
}
}
catch (Exception e)
{
result = new Hashtable();
}
return result;
}
#endregion
private ActionResult writeResult(List list)
{
Hashtable result = new Hashtable();
result.Add("list", list);
return Json(result);
}
///
/// 导出Bom 数据
///
///
public ActionResult exportBOMInfo(String bomType, String partId)
{
List dataHt = this.service.exportBOMInfo(bomType, partId);
var memoryStream = ExcelHelper.ToExcel(dataHt);
return File(memoryStream.ToArray(), "application/ms-excel", "BOM管理.xls");
}
public ActionResult exportALL(String bomType)
{
List dataHt = this.service.exportALL(bomType);
var memoryStream = ExcelHelper.ToExcel(dataHt);
return File(memoryStream.ToArray(), "application/ms-excel", "BOM管理.xls");
}
}
}