123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833 |
- using AutoMapper;
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using DllEapCommon.NPOI;
- using DllEapDal;
- using DllEapDal.OFILM;
- using DllEapEntity;
- using DllEapEntity.Dtos;
- using DllEapEntity.Mes;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Data;
- using System.Threading.Tasks;
- namespace DllUnityWebApi
- {
- /// <summary>
- /// 数据分析
- /// </summary>
- [Route("Eap/Api/[controller]/[action]")]
- [ApiController]
- [Authorize]
- public class Analysis2Controller : ControllerBase
- {
- private IDatabase db;
- private IMapper _mapper;
- private string commonFilter = $" and EventCode='{DllHsms.StandardCode.CEID_AlarmOccurred}'";
- public Analysis2Controller(IMapper mapper)
- {
- _mapper = mapper;
- }
- /// <summary>
- /// 一段时间内机台报警
- /// </summary>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- [HttpGet]
- public ChartDto GetAlarmAnalysis(string mainFilter, string subFilter)
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var dto = dal.CreateCategory(mainFilter + commonFilter, subFilter);
- return dto;
- }
- }
- /// <summary>
- /// MTBA图表
- /// </summary>
- /// <param name="mainFilter"></param>
- /// <returns></returns>
- [HttpGet]
- public ChartDto2 GetMtbaAnalysis(DateTime startTime, DateTime endTime, string tablename, string subFilter, string sub)
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var dto = dal.CreateMtbaCategory(startTime, endTime, tablename, subFilter, sub);
- return dto;
- }
- }
- /// <summary>
- /// 机台报警统计报表数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="sortField"></param>
- /// <param name="sortOrder"></param>
- /// <param name="take"></param>
- /// <returns></returns>
- [HttpGet]
- public IEnumerable<AnalysisDto> GetMachineAlarmDtos(string filter, string subFilter, string sortField = "count", string sortOrder = "ascend", int take = 10)
- {
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var dtos = dal.GetAlarmAnalysis(filter + commonFilter, subFilter, sortField, sortOrder, take);
- return dtos;
- }
- }
- /// <summary>
- /// 机台报警统计
- /// </summary>
- /// <param name="filterInfo"></param>
- /// <returns></returns>
- [HttpPost]
- public async Task<IActionResult> ExportMachineAlarmDtos(IDictionary<string, string> filterInfo)
- {
- string filter = string.Empty, subFilter = string.Empty;
- string sortField = "count"; string sortOrder = "ascend"; int take = 10000;
- if (filterInfo.ContainsKey("filter"))
- {
- filter = filterInfo["filter"];
- }
- if (filterInfo.ContainsKey("subFilter"))
- {
- subFilter = filterInfo["subFilter"];
- }
- if (filterInfo.ContainsKey("sortField"))
- {
- filter = filterInfo["sortField"];
- }
- if (filterInfo.ContainsKey("sortOrder"))
- {
- filter = filterInfo["sortOrder"];
- }
- if (filterInfo.ContainsKey("take"))
- {
- filter = filterInfo["take"];
- }
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var dtos = dal.GetAlarmAnalysis(filter + commonFilter, subFilter, sortField, sortOrder, take);
- var list = _mapper.Map<IEnumerable<ExportMachineAlarmDto>>(dtos).ToList();
- var book = DataExportHelper.EntityToExcel(list);
- 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<AnalysisDto> GetAlarmCodeGrid(string filter, string subFilter, int pageSize = 10, int pageIndex = 1)
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- int total;
- var dtos = dal.GetAlarmCodeAnalysis(filter + commonFilter, subFilter, pageSize, pageIndex, out total);
- return new LayuiModel<AnalysisDto>
- {
- code = 0,
- msg = "ok",
- count = total,
- data = dtos
- };
- }
- }
- /// <summary>
- /// 一段时间内报警代码
- /// </summary>
- /// <param name="startTime">开始时间</param>
- /// <param name="endTime">结束时间</param>
- /// <param name="macModel">机型编码</param>
- /// <param name="pCode">制程</param>
- /// <returns></returns>
- [HttpGet]
- public ChartDto GetAlarmAnalysisByCode(string filter, string subFilter)
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var dto = dal.CreateAlarmCat(filter + commonFilter, subFilter);
- return dto;
- }
- }
- /// <summary>
- /// 获取所有的机型
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- public IEnumerable<SecMacModel> GetMacModels()
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new MacModelDal(db);
- var models = dal.Get();
- return models;
- }
- }
- /// <summary>
- /// 获取所有制程
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- public IEnumerable<Process> GetProcesses()
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new TProcessDal(db);
- var models = dal.Get();
- return models;
- }
- }
- /// <summary>
- /// 报警代码统计报表数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="pageSize"></param>
- /// <param name="pageIndex"></param>
- /// <param name="sortField"></param>
- /// <param name="sortOrder"></param>
- /// <param name="take"></param>
- /// <returns></returns>
- [HttpGet]
- public LayuiModel<AnalysisDto> GetCodeAlarmDtos(string filter, string subFilter, int pageSize, int pageIndex, string sortField = "count", string sortOrder = "descend", int take = 10)
- {
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- int total;
- var dtos = dal.GetAlarmCodeAnalysis(filter + commonFilter, subFilter, pageSize, pageIndex, out total, sortField, sortOrder);
- return new LayuiModel<AnalysisDto>
- {
- code = 1,
- count = total,
- msg = string.Empty,
- data = dtos
- };
- }
- }
- /// <summary>
- /// 报警代码统计导出
- /// </summary>
- /// <param name="filterInfo"></param>
- /// <returns></returns>
- [HttpPost]
- public async Task<IActionResult> ExportCodeAlarmDtos(IDictionary<string, string> filterInfo)
- {
- string filter = string.Empty, subFilter = string.Empty;
- if (filterInfo.ContainsKey("filter"))
- {
- filter = filterInfo["filter"];
- }
- if (filterInfo.ContainsKey("subFilter"))
- {
- subFilter = filterInfo["subFilter"];
- }
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- int total;
- var dtos = dal.GetAlarmCodeAnalysis(filter + commonFilter, subFilter, 100000, 1, out total, "count", "desc");
- var list = _mapper.Map<IEnumerable<ExportAnalysisDto>>(dtos).ToList();
- var book = DataExportHelper.EntityToExcel(list);
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- book.Write(ms);
- ms.Dispose();
- ms.Close();
- await Task.CompletedTask;
- return File(ms.ToArray(), "application/octet-stream");
- }
- }
- /// <summary>
- /// 获取LHA数据采集报表数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="macCode"></param>
- /// <param name="pageSize"></param>
- /// <param name="pageIndex"></param>
- /// <param name="sortField"></param>
- /// <param name="sortOrder"></param>
- /// <returns></returns>
- [HttpGet]
- public LayuiModel<DllEapEntity.OFILM.PostbondviewDto> GetLHADataDtos(string filter, string subFilter, string macCode, int pageSize, int pageIndex, string sortField = "time", string sortOrder = "asc")
- {
- if (sortOrder == "asc")
- {
- sortOrder = "asc";
- }
- else
- {
- sortOrder = "asc";
- }
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- int total;
- //var machinedal = new MachineDal(db);
- //if (machinedal.GetCount($" and a.FCode='{macCode}'") == 0)
- //{
- // return new LayuiModel<DllEapEntity.OFILM.PostbondviewDto>
- // {
- // code = -1,
- // count = 0,
- // msg = "机台号不存在!",
- // data = null
- // };
- //}
- var dtos = dal.GetLHADataAnalysis(filter, subFilter, pageSize, pageIndex, out total, sortField, sortOrder);
- return new LayuiModel<DllEapEntity.OFILM.PostbondviewDto>
- {
- code = 1,
- count = total,
- msg = string.Empty,
- data = dtos
- };
- }
- }
- /// <summary>
- /// LHA数据采集导出
- /// </summary>
- /// <param name="filterInfo"></param>
- /// <returns></returns>
- [HttpPost]
- public async Task<IActionResult> ExportLHADataDtos(IDictionary<string, string> filterInfo)
- {
- string filter = string.Empty, subFilter = string.Empty, macCode = string.Empty, sortField = "time", sortOrder = "asc";
- int pageSize = 100000, pageIndex = 1;
- if (filterInfo.ContainsKey("filter"))
- {
- filter = filterInfo["filter"];
- }
- if (filterInfo.ContainsKey("subFilter"))
- {
- subFilter = filterInfo["subFilter"];
- }
- if (filterInfo.ContainsKey("macCode"))
- {
- macCode = filterInfo["macCode"];
- }
- if (filterInfo.ContainsKey("sortField"))
- {
- sortField = filterInfo["sortField"];
- }
- if (filterInfo.ContainsKey("sortOrder"))
- {
- sortOrder = filterInfo["sortOrder"];
- }
- if (filterInfo.ContainsKey("pageSize") && !string.IsNullOrEmpty(filterInfo["pageSize"]))
- {
- pageSize = Convert.ToInt32(filterInfo["pageSize"]) > 0 ? Convert.ToInt32(filterInfo["pageSize"]) : pageSize;
- }
- if (filterInfo.ContainsKey("pageIndex") && !string.IsNullOrEmpty(filterInfo["pageIndex"]))
- {
- pageIndex = Convert.ToInt32(filterInfo["pageIndex"]) > 0 ? Convert.ToInt32(filterInfo["pageIndex"]) : pageIndex;
- }
- var roles = GetLHADataDtos(filter, subFilter, macCode, pageSize, pageIndex).data;
- var list = _mapper.Map<IEnumerable<ExportPostbondviewDtocs>>(roles).ToList();
- var book = DataExportHelper.EntityToExcel(list);
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- book.Write(ms);
- ms.Dispose();
- ms.Close();
- await Task.CompletedTask;
- return File(ms.ToArray(), "application/octet-stream");
- }
- /// <summary>
- /// 机台报警清单报表数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="sub"></param>
- /// <param name="sort"></param>
- /// <param name="pageIndex"></param>
- /// <param name="pageSize"></param>
- /// <param name="sortField"></param>
- /// <param name="sortOrder"></param>
- /// <returns></returns>
- [HttpGet]
- public LayuiModel<AlarmCode> GetAlarmCodeDetail(string filter, string subFilter, string sub, string sort, int pageIndex = 1, int pageSize = 10, string sortField = "ptime", string sortOrder = "descend")
- {
- if (!string.IsNullOrEmpty(sort))
- {
- string[] arr = sort.Split(",");
- sortField = arr[0];
- sortOrder = arr[1];
- }
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- int count;
- var dtos = dal.GetAramCodeDetail(filter + commonFilter, subFilter, sub, start, pageSize, out count, sortField, sortOrder);
- // int count = dal.GetAlarmCodeCount(filter + commonFilter);
- return new LayuiModel<AlarmCode>()
- {
- code = 0,
- count = count,
- data = dtos,
- msg = "ok"
- };
- }
- }
- /// <summary>
- /// 机台报警清单导出
- /// </summary>
- /// <param name="filterinfo"></param>
- /// <returns></returns>
- [HttpPost]
- public async Task<IActionResult> ExporAlarmCodeDetail(IDictionary<string, string> filterinfo)
- {
- string sortField = string.Empty, sortOrder = "descend", filter = string.Empty, subFilter = string.Empty, sub = string.Empty;
- int pageIndex = 1, pageSize = 100000;
- if (filterinfo.ContainsKey("sortField"))
- {
- sortField = filterinfo["sortField"];
- }
- if (filterinfo.ContainsKey("sortOrder"))
- {
- sortOrder = filterinfo["sortOrder"];
- }
- if (filterinfo.ContainsKey("filter"))
- {
- filter = filterinfo["filter"];
- }
- if (filterinfo.ContainsKey("subFilter"))
- {
- subFilter = filterinfo["subFilter"];
- }
- if (filterinfo.ContainsKey("sub"))
- {
- sub = filterinfo["sub"];
- }
- if (filterinfo.ContainsKey("pageIndex"))
- {
- pageIndex = Convert.ToInt32(filterinfo["pageIndex"]);
- }
- if (filterinfo.ContainsKey("pageSize"))
- {
- pageSize = Convert.ToInt32(filterinfo["pageSize"]);
- }
- var dto = GetAlarmCodeDetail(filter, subFilter, sub, null, pageIndex, pageSize, null, sortOrder).data;
- var list = _mapper.Map<IEnumerable<ExportAlarmCode>>(dto).ToList();
- var type = typeof(Nullable<DateTime>);
- var book = DataExportHelper.EntityToExcel(list);
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- book.Write(ms);
- ms.Dispose();
- ms.Close();
- await Task.CompletedTask;
- return File(ms.ToArray(), "application/octet-stream");
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="type"></param>
- /// <param name="dateType"></param>
- /// <param name="codes"></param>
- /// <returns></returns>
- [HttpGet]
- public EChartsBar GetMtbfs(string filter, string subFilter, string type, DateType dateType, string codes)
- {
- var arr = codes.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- using (db = DbFactory.Base("eapslave"))
- {
- McaEventStatisticByDayDal dal = new McaEventStatisticByDayDal(db);
- return dal.GetMTBFsNew(type, dateType, filter, subFilter, arr);
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="type"></param>
- /// <param name="isIndex"></param>
- /// <returns></returns>
- [HttpGet]
- public LineDateDto GetAlarmTimes(string filter, string subFilter, string type, int isIndex = -1)
- {
- using (db = DbFactory.Base("eapslave"))
- {
- McaEventStatisticByDayDal dal = new McaEventStatisticByDayDal(db);
- var entities = dal.GetAlarmTimeDtos(commonFilter + filter, subFilter, type);
- if (entities != null)
- {
- if (isIndex == 1)
- {
- entities.LineSeries = entities.LineSeries?.OrderBy(c => c.AlarmTimeDtos.Sum(t => t.Count)).Take(3);
- }
- }
- return entities;
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="type"></param>
- /// <param name="macModel"></param>
- /// <param name="pCode"></param>
- /// <param name="factoryId"></param>
- /// <param name="dateStart"></param>
- /// <param name="dateEnd"></param>
- /// <returns></returns>
- [HttpGet]
- public IEnumerable<MachineEfficiency> GetMachineEfficiencies(string filter, string subFilter, string type, string macModel, string pCode, int? factoryId, string dateStart = null, string dateEnd = null)
- {
- DateTime? start = null, end = null;
- if (!string.IsNullOrEmpty(dateStart) && dateStart.ToLower() != "null")
- {
- start = Convert.ToDateTime(dateStart);
- }
- if (!string.IsNullOrEmpty(dateEnd) && dateEnd.ToLower() != "null")
- {
- end = Convert.ToDateTime(dateEnd);
- }
- using (db = DbFactory.Base("eapslave"))
- {
- McaEventStatisticByDayDal dal = new McaEventStatisticByDayDal(db);
- return dal.GetMachineEfficy(type, filter, subFilter, macModel, pCode, factoryId, start, end);
- }
- }
- /// <summary>
- /// 设备状态监控报表数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="subFilter"></param>
- /// <param name="pageIndex"></param>
- /// <param name="pageSize"></param>
- /// <param name="sortField"></param>
- /// <param name="sortOrder"></param>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- [HttpGet]
- public LayuiModel<MachineEfDto> GetMachineEfficienciesT(string filter, string subFilter, int pageIndex = 1, int pageSize = 10, string sortField = "MacCode", string sortOrder = "ascend",
- DateTime? startTime = null, DateTime? endTime = null)
- {
- string userCode = Request.Headers["usercode"];
- DateTime? startt = null, endt = null;
- double se = 1;
- //string[] startend = filter.Split('\'');
- //if (startend.Length > 4)
- //{
- // startt = Convert.ToDateTime(startend[1]);
- // endt = Convert.ToDateTime(startend[3]);
- // se = (endt - startt).Value.TotalMinutes;
- // se = se == 0 ? 1 : se;
- //}
- se = ((endTime - startTime).Value.TotalMinutes);
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- if (sortField == "null")
- {
- sortField = "MacCode";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- db.BeginTrans();
- var dal = new McaEventStatisticByDayDal(db);
- var total = 0;
- string errorinfo = string.Empty;
- IEnumerable<MachineEfDto> roles = dal.GetMachineEfficyMachine(filter, subFilter, start, pageSize, sortField, sortOrder, out total, se);
- var extra = dal.GetMachineEfficyMachineTotal(filter, subFilter, start, pageSize, sortField, sortOrder, se);
- return new LayuiModel<MachineEfDto>
- {
- code = 1,
- count = total,
- data = roles,
- msg = "",
- extraObject = extra
- };
- }
- }
- /// <summary>
- /// 设备状态监控导出
- /// </summary>
- /// <param name="queryData"></param>
- /// <returns></returns>
- [HttpPost]
- public IActionResult ExportMachineEfficiencies([FromBody] dynamic queryData)
- {
- string filter = Convert.ToString(queryData.filter);
- string subFilter = Convert.ToString(queryData.subFilter);
- int pageIndex = Convert.ToInt32(queryData.pageIndex);
- int pageSize = Convert.ToInt32(queryData.pageSize);
- string sortField = Convert.ToString(queryData.sortField);
- string sortOrder = Convert.ToString(queryData.sortOrder);
- DateTime? startTime = Convert.ToDateTime(queryData.startTime);
- DateTime? endTime = Convert.ToDateTime(queryData.endTime);
- double se = 1;
- se = ((endTime - startTime).Value.TotalMinutes);
- string errorinfo = string.Empty;
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- db.BeginTrans();
- var dal = new McaEventStatisticByDayDal(db);
- var total = 0;
- IEnumerable<MachineEfDto> roles = dal.GetMachineEfficyMachine(filter, subFilter, start, pageSize, sortField, sortOrder, out total, se);
- var extra = dal.GetMachineEfficyMachineTotal(filter, subFilter, start, pageSize, sortField, sortOrder, se);
- if (roles == null)
- {
- return null;
- }
- var buffer = DataExportHelper.ExportMachineEfficiencies(roles, extra, total, ref errorinfo);
- if (buffer == null)
- {
- return null;
- }
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- ms.Write(buffer, 0, buffer.Length);
- ms.Dispose();
- ms.Close();
- return File(buffer, "application/octet-stream");
- }
- }
- [HttpGet]
- public IEnumerable<MachineEfDto> GetMachineEfficienciesTExport(string filter, string subFilter, string sortField = "count", string sortOrder = "ascend", int take = 10, DateTime? startTime = null, DateTime? endTime = null)
- {
- double se = ((endTime - startTime).Value.TotalDays + 1) * 1440;
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var dtos = dal.GetMachineEfficyMachineExprort(filter, subFilter, sortField, sortOrder, take, se);
- return dtos;
- }
- }
- /// <summary>
- /// 设备流失总费
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="dateStart"></param>
- /// <param name="dateEnd"></param>
- /// <returns></returns>
- [HttpGet]
- public LayuiModel<MachineEfFactoryDto> GetMachineEfficienciesFactory(string filter, string dateStart = null, string dateEnd = null)
- {
- string userCode = Request.Headers["usercode"];
- DateTime? start = null, end = null;
- double se = 1;
- DateTime dateTime = DateTime.Now;
- filter = $@" AND a.STime >= '{dateTime.ToString("yyyy-MM-dd 00:00:00")}'
- AND a.STime <= '{dateTime.ToString("yyyy-MM-dd") + " 23:59"}'";
- string[] startend = filter.Split('\'');
- if (startend.Length > 4)
- {
- start = Convert.ToDateTime(startend[1]);
- end = Convert.ToDateTime(startend[3]);
- se = (end - start).Value.TotalMinutes;
- se = se == 0 ? 1 : se;
- }
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- db.BeginTrans();
- var dal = new McaEventStatisticByDayDal(db);
- var total = 0;
- string errorinfo = string.Empty;
- IEnumerable<MachineEfFactoryDto> roles = dal.GetMachineEfficyFactory(filter, se);
- var extra = 100;//dal.GetTotalInfo(filter, subFilter);
- return new LayuiModel<MachineEfFactoryDto>
- {
- code = 1,
- count = total,
- data = roles,
- msg = "",
- extraObject = extra
- };
- }
- }
- [HttpGet]
- public IEnumerable<CascaderDto> GetCasMaModels()
- {
- using (db = DbFactory.Base("eapslave"))
- {
- var dal = new MachineDal(db);
- return dal.GetCascaders();
- }
- }
- [HttpGet]
- [AllowAnonymous]
- public StatusTotal GetStatusTotal()
- {
- Response.Headers.Add("Access-Control-Allow-Origin", "*");
- Response.Headers.Add("Access-Control-Allow-Methods", "GET,POST");
- var statusShowBll = new DllStatusShowBll.StatusShowBll("eapslave");
- return statusShowBll.ReadStatusTotalFromMes();
- }
- [HttpGet]
- public IEnumerable<OutputTree> GetOutputs(string filter, string subFilter)
- {
- var errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- return dal.GetOutputs(filter, subFilter, ref errorinfo);
- }
- }
- [HttpGet]
- public LayuiModel<OutputDto> GetOutputsByProgram(string filter, string subFilter, string sort, int pageIndex = 1, int pageSize = 10)
- {
- string sortOrder = "desc";
- string sortField = "uph";
- if (!string.IsNullOrEmpty(sort))
- {
- var array = sort.Split(new char[] { ',' });
- sortField = array[0];
- sortOrder = array[1] == "ascend" ? "asc" : "desc";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var total = dal.GetProgramCountFromMacCount(filter, subFilter);
- string errorinfo = string.Empty;
- var roles = dal.GetOutputsByProgram(filter, subFilter, start, pageSize, sortField, sortOrder, ref errorinfo);
- var extra = dal.GetExtra(filter, subFilter);
- if (!string.IsNullOrEmpty(errorinfo))
- {
- return new LayuiModel<OutputDto>
- {
- code = -1,
- count = 0,
- data = null,
- msg = errorinfo
- };
- }
- return new LayuiModel<OutputDto>
- {
- code = 1,
- count = total,
- data = roles,
- extra = extra,
- msg = ""
- };
- }
- }
- [HttpGet]
- public int GetCurrentOutput()
- {
- var errorinfo = string.Empty;
- var filter = $" and a.FDate>='{DateTime.Now.ToString("yyyy-MM-dd 00:00:00.000")}' and a.FDate<='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
- filter += " and f.FCode='WB'";
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- int count;
- int total;
- var dal = new McaEventStatisticByDayDal(db);
- var outputs = dal.GetMachineOutput(filter, out count, out total, ref errorinfo, 1, 10000);
- return outputs?.Sum(c => c.Count) ?? 0;
- }
- }
- [HttpGet]
- public LayuiModel<OeeEntity> GetOees(string filter, DateTime dateStart, DateTime dateEnd, int pageIndex = 1, int pageSize = 10)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new McaEventStatisticByDayDal(db);
- var entities = dal.GetOeeEntities(filter, dateStart, dateEnd);
- var total = entities.Count();
- entities = entities.OrderBy(c => c.MacCode).Skip((pageIndex - 1) * pageSize).Take(pageSize);
- var layModel = new LayuiModel<OeeEntity>
- {
- code = 1,
- msg = string.Empty,
- count = total,
- data = entities
- };
- return layModel;
- }
- }
- }
- }
|