using Cksoft.Data;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using DllEapEntity.Dtos;
using Microsoft.AspNetCore.Mvc;
using Cksoft.Data.Repository;
using DllEapDal;
using DllEapEntity;
using DllEapEntity.Mes;
namespace DllUnityWebApi
{
[Route("Eap/Api/[controller]/[action]")]
[ApiController]
public class AnalysisController : Controller
{
private IDatabase db;
///
/// 一段时间内机台报警
///
///
///
///
[HttpGet]
public ChartDto GetAlarmAnalysis(string filter)
{
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dto = dal.CreateCategory(filter);
return dto;
}
}
[HttpGet]
public LayuiModel GetAlarmGrid(string startTime, string endTime)
{
if (string.IsNullOrEmpty(startTime))
{
startTime = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd");
}
if (string.IsNullOrEmpty(endTime))
{
endTime = DateTime.Now.ToString("yyyy-MM-dd");
}
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dtos = dal.GetAlarmAnalysis(startTime, endTime);
return new LayuiModel
{
code = 0,
msg = "ok",
count = dtos.Count(),
data = dtos
};
}
}
[HttpGet]
public IEnumerable GetMachineAlarmDtos(string filter, string sortField = "name", string sortOrder = "ascend")
{
if (sortOrder == "descend")
{
sortOrder = "desc";
}
else
{
sortOrder = "asc";
}
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dtos = dal.GetAlarmAnalysis(filter, sortField, sortOrder);
return dtos;
}
}
[HttpGet]
public LayuiModel GetAlarmCodeGrid(string filter)
{
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dtos = dal.GetAlarmCodeAnalysis(filter);
return new LayuiModel
{
code = 0,
msg = "ok",
count = dtos.Count(),
data = dtos
};
}
}
///
/// 一段时间内报警代码
///
/// 开始时间
/// 结束时间
/// 机型编码
/// 制程
///
[HttpGet]
public ChartDto GetAlarmAnalysisByCode(string filter)
{
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dto = dal.CreateAlarmCat(filter);
return dto;
}
}
///
/// 获取所有的机型
///
///
[HttpGet]
public IEnumerable GetMacModels()
{
using (db = DbFactory.Base("sqlconn"))
{
var dal = new MacModelDal(db);
var models = dal.Get();
return models;
}
}
///
/// 获取所有制程
///
///
[HttpGet]
public IEnumerable GetProcesses()
{
using (db = DbFactory.Base("eapslave"))
{
var dal = new TProcessDal(db);
var models = dal.Get();
return models;
}
}
[HttpGet]
public IEnumerable GetCodeAlarmDtos(string filter, string sortField = "name", string sortOrder = "ascend")
{
if (sortOrder == "descend")
{
sortOrder = "desc";
}
else
{
sortOrder = "asc";
}
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dtos = dal.GetAlarmCodeAnalysis(filter, sortField, sortOrder);
return dtos;
}
}
[HttpGet]
public LayuiModel GetAlarmCodeDetail(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "ptime", string sortOrder = "descend")
{
if (sortOrder == "descend")
{
sortOrder = "desc";
}
else
{
sortOrder = "asc";
}
int start, end;
start = (pageIndex - 1) * pageSize + 1;
end = start + pageSize;
using (db = DbFactory.Base("sqlconn"))
{
var dal = new McaSecVMstDal(db);
var dtos = dal.GetAramCodeDetail(filter, start, end, sortField, sortOrder);
int count = dal.GetAralrCodeCount(filter);
return new LayuiModel()
{
code = 0,
count = count,
data = dtos,
msg = "ok"
};
}
}
[HttpGet]
public IEnumerable GetMtbfs(string filter, string type)
{
using (db = DbFactory.Base("sqlconn"))
{
McaSecVMstDal dal = new McaSecVMstDal(db);
return dal.GetMTBFs(filter, type);
}
}
[HttpGet]
public LineDateDto GetAlarmTimes(string filter, string type)
{
using (db = DbFactory.Base("sqlconn"))
{
McaSecVMstDal dal = new McaSecVMstDal(db);
return dal.GetAlarmTimeDtos(filter, type);
}
}
[HttpGet]
public IEnumerable GetMachineEfficiencies(string filter, string type)
{
using (db = DbFactory.Base("sqlconn"))
{
McaSecVMstDal dal = new McaSecVMstDal(db);
switch (type)
{
case "machine":
return dal.GetMachineEfficienciesGroupByMcaCode(filter).OrderBy(c => c.Name);
case "macmodel":
return dal.GetMachineEfficienciesGroupByMacModel(filter).OrderBy(c => c.Name);
case "pcode":
return dal.GetMachineEfficienciesGroupByPcode(filter).OrderBy(c => c.Name);
default:
return dal.GetMachineEfficienciesGroupByMcaCode(filter).OrderBy(c => c.Name);
}
}
}
}
}