using AutoMapper; using Cksoft.Data; using Cksoft.Data.Repository; using DllEapCommon.NPOI; using DllEapDal.OFILM; using DllEapEntity.Dtos; using DllEapEntity.OFILM; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DllEapBll.OFILM { [Route("eap/api/[controller]/[action]")] [ApiController] public class MaterialRejectController : ControllerBase { private IMapper _mapper; public MaterialRejectController(IMapper mapper) { _mapper = mapper; } [HttpGet] public LayuiModel Get(string filter, string subFilter, int pageIndex = 1, int pageSize = 10, string sortField = "fkey", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } if (sortField == "null") { sortField = "fkey"; } int start, end; start = (pageIndex - 1) * pageSize + 1; end = start + pageSize; using (IDatabase db = DbFactory.Base("eapslave")) { db.BeginTrans(); var dal = new MachineMaterialDetailDal(db); var total = 0; string errorinfo = string.Empty; var roles = dal.Get(filter, subFilter, start, pageSize, sortField, sortOrder, out total); var extra = dal.GetTotalInfo(filter, subFilter); return new LayuiModel { code = 1, count = total, data = roles, msg = "", extraObject = extra }; } } /// /// AA抛料率分析报表查询 /// /// /// /// /// /// /// /// [HttpGet] public LayuiModel GetByRecipe(string filter, string subFilter, int pageIndex = 1, int pageSize = 10, string sortField = "fkey", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } if (sortField == "null") { sortField = "fkey"; } int start, end; start = (pageIndex - 1) * pageSize + 1; end = start + pageSize; using (IDatabase db = DbFactory.Base("eapslave")) { db.BeginTrans(); var dal = new MachineMaterialDetailDal(db); var total = 0; string errorinfo = string.Empty; var roles = dal.GetByRecipe(filter, subFilter, start, pageSize, sortField, sortOrder, out total); var extra = dal.GetTotalInfo(filter, subFilter); return new LayuiModel { code = 1, count = total, data = roles, msg = "", extraObject = extra }; } } /// /// AA抛料率分析导出 /// /// /// [HttpPost] public async Task ExportByRecipe(IDictionary filterInfo) { string filter=string.Empty, subFilter=string.Empty,sortField = "fkey",sortOrder = "ascend"; int pageIndex = 1, pageSize = 100000; if (filterInfo.ContainsKey("filter")) { filter = filterInfo["filter"]; } if (filterInfo.ContainsKey("subFilter")) { subFilter = filterInfo["subFilter"]; } if (filterInfo.ContainsKey("sortField")) { sortField = filterInfo["sortField"]; } if (filterInfo.ContainsKey("sortOrder")) { sortOrder = filterInfo["sortOrder"]; } if (filterInfo.ContainsKey("pageIndex")) { pageIndex = Convert.ToInt32(filterInfo["pageIndex"]); } if (filterInfo.ContainsKey("pageSize")) { pageSize = Convert.ToInt32(filterInfo["pageSize"]); } using (IDatabase db = DbFactory.Base("eapslave")) { var roles = GetByRecipe(filter, subFilter, pageIndex, pageSize, sortField, sortOrder).data; var dal = new MachineMaterialDetailDal(db); var dao = dal.GetTotalInfo(filter, subFilter); roles.ToList().Add(dao); List str = new List() { "机种", "OutPut", "Lens", "", "", "Sensor", "", "", }; List index = new List() { 2, 4, 5, 7 }; foreach (var item in roles) { item.LenRejectPercent = (Convert.ToDouble(item.LenRejectPercent) * 100).ToString()+"%"; item.SensorRejectPercent = (Convert.ToDouble(item.SensorRejectPercent) * 100).ToString()+"%"; } var list = _mapper.Map>(roles).ToList(); var book = DataExportHelper.EntityToExcel(list, str, index); MemoryStream ms = new MemoryStream(); ms.Position = 0; book.Write(ms); ms.Dispose(); ms.Close(); await Task.CompletedTask; return File(ms.ToArray(), "application/octet-stream"); } } [HttpGet] public LayuiModel GetMaterialDetails(string filter, string subFilter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MachineMaterialDetailDal(db); var details = dal.GetMaterialDetails(filter, subFilter); return new LayuiModel { code = 1, count = details.Count(), data = details, msg = "", }; } } [HttpGet] public LayuiModel GetMaterialErrorMessages(string filter, string subFilter) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MaterialErrorMessageDal(db); var details = dal.GetMaterialErrorMessages(filter, subFilter); return new LayuiModel { code = 1, count = details.Count(), data = details, msg = "", }; } } /// /// AA报警分析报表查询 /// /// /// /// /// /// /// /// [HttpGet] public LayuiModel GetErrorMessagesByRecipe(string filter, string subFilter, int pageIndex = 1, int pageSize = 10, string sortField = "fkey", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } if (sortField == "null") { sortField = "fkey"; } int start, end; start = (pageIndex - 1) * pageSize + 1; end = start + pageSize; using (IDatabase db = DbFactory.Base("eapslave")) { db.BeginTrans(); var dal = new MaterialErrorMessageDal(db); var total = 0; string errorinfo = string.Empty; var roles = dal.GetByRecipe(filter, subFilter, start, pageSize, sortField, sortOrder, out total); var extra = dal.GetTotalInfo(filter, subFilter); return new LayuiModel { code = 1, count = total, data = roles, msg = "", extraObject = extra }; } } /// /// AA报警分析导出 /// /// /// [HttpPost] public async Task ExportErrorMessagesByRecipe(IDictionary filterInfo) { string filter = string.Empty, subFilter = string.Empty, sortField = "fkey", sortOrder = "ascend"; int pageIndex = 1, pageSize = 100000; if (filterInfo.ContainsKey("filter")) { filter = filterInfo["filter"]; } if (filterInfo.ContainsKey("subFilter")) { subFilter = filterInfo["subFilter"]; } if (filterInfo.ContainsKey("sortField")) { sortField = filterInfo["sortField"]; } if (filterInfo.ContainsKey("sortOrder")) { sortOrder = filterInfo["sortOrder"]; } if (filterInfo.ContainsKey("pageIndex")) { pageIndex = Convert.ToInt32(filterInfo["pageIndex"]); } if (filterInfo.ContainsKey("pageSize")) { pageSize = Convert.ToInt32(filterInfo["pageSize"]); } using (IDatabase db = DbFactory.Base("eapslave")) { var roles = GetErrorMessagesByRecipe(filter, subFilter, pageIndex, pageSize, sortField, sortOrder).data; var dal = new MaterialErrorMessageDal(db); var dao = dal.GetTotalInfo(filter, subFilter); roles.ToList().Add(dao); List str = new List() { "机种", "LensInput", "Lens真空报警", "", "LensPR报警", "", "SensorInput", "Sensor真空报警","", "SensorPR报警","" }; List index = new List() { 2, 3, 4, 5,7,8,9,10 }; foreach (var item in roles) { item.LensPrAlarmRate = (Convert.ToDouble(item.LensPrAlarmRate) * 100).ToString() + "%"; item.LensVacuoAlarmRate = (Convert.ToDouble(item.LensVacuoAlarmRate) * 100).ToString() + "%"; item.SensorPrAlarmRate = (Convert.ToDouble(item.SensorPrAlarmRate) * 100).ToString() + "%"; item.SensorVacuoAlarmRate = (Convert.ToDouble(item.SensorVacuoAlarmRate) * 100).ToString() + "%"; } var list = _mapper.Map>(roles).ToList(); var book = DataExportHelper.EntityToExcel(list, str, index); MemoryStream ms = new MemoryStream(); ms.Position = 0; book.Write(ms); ms.Dispose(); ms.Close(); await Task.CompletedTask; return File(ms.ToArray(), "application/octet-stream"); } } [HttpGet] public LayuiModel GetErrorMessagesByMachine(string filter, string subFilter, int pageIndex = 1, int pageSize = 10, string sortField = "fkey", string sortOrder = "ascend") { string userCode = Request.Headers["usercode"]; if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } if (sortField == "null") { sortField = "fkey"; } int start, end; start = (pageIndex - 1) * pageSize + 1; end = start + pageSize; using (IDatabase db = DbFactory.Base("eapslave")) { db.BeginTrans(); var dal = new MaterialErrorMessageDal(db); var total = 0; string errorinfo = string.Empty; var roles = dal.GetByMachine(filter, subFilter, start, pageSize, sortField, sortOrder, out total); var extra = dal.GetTotalInfo(filter, subFilter); return new LayuiModel { code = 1, count = total, data = roles, msg = "", extraObject = extra }; } } } }