123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using Cksoft.Unity;
- using DllEapBll.Services;
- using DllEapDal.OFILM;
- using DllEapEntity;
- using DllEapEntity.Dtos;
- using DllEapEntity.OFILM;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- namespace DllEapBll.OFILM
- {
- /// <summary>
- /// 看板数据
- /// </summary>
- [ApiController]
- [Route("eap/api/[controller]/[action]")]
- [Authorize]
- public class MacStatusTotalInfoController : ControllerBase
- {
- private MacStatusService macStatusService;
- /// <summary>
- ///
- /// </summary>
- /// <param name="macStatusService"></param>
- public MacStatusTotalInfoController(MacStatusService macStatusService)
- {
- this.macStatusService = macStatusService;
- }
- /// <summary>
- /// 看板首页机台状态数据
- /// </summary>
- /// <param name="filter"></param>
- /// <param name="recipe"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetTotalInfo(string filter, string recipe)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- //filter = " and a.regionId in (select id from factoryregion where parentid=22) "; // 未来城1号COB车间
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- //db.BeginTrans();
- var entity = dal.GetTotalInfo(filter, "", "", recipe, ref errorinfo);
- // db.Rollback();
- if (entity == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = entity;
- return res;
- }
- }
- /// <summary>
- /// 获取机种详情头部信息
- /// </summary>
- /// <param name="maccode"></param>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetTotalInfoDeatil(string maccode, string startTime, string endTime)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- MacStatusForDashboardDetailDto runTimes = dal.GetDetail(maccode, startTime, endTime);
- if (runTimes == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = runTimes;
- return res;
- }
- }
- /// <summary>
- /// 获取报警及运行状态持续时间
- /// </summary>
- /// <param name="maccode"></param>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetTotalInfoDeatilForAnalysis(string maccode, string startTime, string endTime)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- // db.BeginTrans();
- // IOrderedEnumerable<MacStatusForAnalysis> runTimes = dal.GetDetailForAnalysis(maccode, startTime, endTime);
- IEnumerable<DayCount> alarms = dal.GetAlarmCountByShift(Convert.ToDateTime(startTime), maccode);
- IEnumerable<RunRateDto> runrate = dal.GetRunRatesDetail(maccode, startTime, endTime);
- MacStatusForDashboardDetailForAnalysisDto macStatusForDashboardDetailForAnalysisDto = new MacStatusForDashboardDetailForAnalysisDto();
- macStatusForDashboardDetailForAnalysisDto.RunTimes = alarms;//报警分析
- macStatusForDashboardDetailForAnalysisDto.Runrate = runrate;//稼动饼图
- // db.Rollback();
- if (alarms == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = macStatusForDashboardDetailForAnalysisDto;
- return res;
- }
- }
- /// <summary>
- /// 获取机种产量详情(昨天、今天)
- /// </summary>
- /// <param name="maccode"></param>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetTotalInfoDeatilForCount(string maccode, string time, string endTime)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- // db.BeginTrans();
- IEnumerable<DayCount> runTimes = dal.GetDetailForCountDay(maccode, time);
- // db.Rollback();
- if (runTimes == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = runTimes;
- return res;
- }
- }
- /// <summary>
- /// 获取机种产量详情(小时)
- /// </summary>
- /// <param name="maccode"></param>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetTotalInfoDeatilForCountHour(string maccode, string time, string endTime)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- MacStatusForCountDto macStatusForCountDto = new MacStatusForCountDto();
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- db.BeginTrans();
- // IEnumerable<DayCount> runDay = dal.GetDetailForCountDay(maccode);
- IEnumerable<HourCount> runHour = dal.GetDetailForCountHour(maccode, time);
- // macStatusForCountDto.CountDay = runDay;
- macStatusForCountDto.CountHour = runHour;
- db.Rollback();
- if (macStatusForCountDto == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = macStatusForCountDto;
- return res;
- }
- }
- /// <summary>
- /// 获取各制程稼动率图表数据
- /// </summary>
- /// <param name="filter"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetProcessRunRate(string filter, string recipe, string date, string type)
- {
- return this.macStatusService.GetProcessRunRate(filter, recipe, date, type);
- }
- /// <summary>
- /// 获取机台运行历史
- /// </summary>
- /// <param name="macCode"></param>
- /// <param name="startTime"></param>
- /// <param name="endTime"></param>
- /// <returns></returns>
- public EapResponse GetRunHistroy(string macCode, DateTime startTime, DateTime endTime)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- //db.BeginTrans();
- var dal = new MacStatusTotalDal(db);
- var datas = dal.GetRunHistory(macCode, startTime, endTime, ref errorinfo);
- //db.Rollback();
- if (datas == null || datas.Count() <= 0)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = datas;
- return res;
- }
- }
- /// <summary>
- /// 获取三级详情
- /// </summary>
- /// <param name="fcode"></param>
- /// <param name="time"></param>
- /// <param name="filter"></param>
- /// <param name="page"></param>
- /// <param name="limit"></param>
- /// <param name="sort"></param>
- /// <param name="order"></param>
- /// <returns></returns>
- [HttpGet]
- public LayuiModel<MacStatus> GetAlarmDetail(string fcode, string startTime, string endTime, string alarmCode, string alarmName, string filter, int page = 1, int limit = 10,
- string sort = "ID", string order = "DESC")
- {
- if (!string.IsNullOrEmpty(fcode))
- filter += $" and a.MacCode = '{fcode}'";
- if (!string.IsNullOrEmpty(startTime))
- filter += $" and a.STime >'{startTime}'";
- if (!string.IsNullOrEmpty(endTime))
- filter += $" and a.STime<='{endTime}'";
- if (!string.IsNullOrEmpty(alarmCode))
- filter += $" and a.AlarmCode like '%{alarmCode}%'";
- if (!string.IsNullOrEmpty(alarmName))
- filter += $" and a.alarmDescribe like '%{alarmName}%'";
- IEnumerable<MacStatus> models = null;
- filter = filter ?? " ";
- string errorinfo = "";
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- models = dal.GetAlarmDetail((page - 1) * limit + 1, limit, filter, sort, order, out int total, ref errorinfo);
- Parallel.ForEach(models, item =>
- {
- item.FlenD = Convert.ToDouble(item.FLen);
- if (item.FLen == 0 && item.ETime.ToString("yyyy-MM-dd HH:mm:ss") != "0001-01-01 00:00:00")
- {
- item.FlenD = 0.01d;
- }
- });
- var count = total;//dal.GetCount(filter);
- var responseData = new LayuiModel<MacStatus>()
- {
- code = 0,
- count = count,
- data = models,
- msg = ""
- };
- return responseData;
- }
- }
- /// <summary>
- /// 获取当天及前一天的白班和夜班的报警数量
- /// </summary>
- /// <param name="date"></param>
- /// <param name="macCode"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetAlarmCounyByShift(DateTime date, string macCode)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- //db.BeginTrans();
- IEnumerable<DayCount> alarms = dal.GetAlarmCountByShift(date, macCode);
- if (alarms == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = alarms;
- return res;
- }
- }
- /// <summary>
- /// 大连线看板数据
- /// </summary>
- /// <param name="maccode"></param>
- /// <param name="date"></param>
- /// <returns></returns>
- [HttpGet]
- public EapResponse GetMacDetail(string maccode, string date)
- {
- var res = new EapResponse { Code = 1, Msg = string.Empty };
- string errorinfo = string.Empty;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MacStatusTotalDal(db);
- var maccodes = maccode.Split(',').ToList();
- //'DA00001', 'WB00001', 'WB00002', 'WB00003', 'WB00004', 'WB00005', 'LHA0001', 'AA00001'
- //List<string> maccodes = new List<string>();
- //maccodes.Add("DA00001");
- //maccodes.Add("WB00001");
- //maccodes.Add("WB00002");
- //maccodes.Add("WB00003");
- //maccodes.Add("WB00004");
- //maccodes.Add("WB00005");
- //maccodes.Add("LHA0001");
- //maccodes.Add("AA00001");
- if (maccodes.Count == 0)
- {
- res.Code = -1;
- res.Msg = "机台不可为空";
- return res;
- }
- //db.BeginTrans();
- MacDto alarms = dal.GetDetail(maccodes, date);
- if (alarms == null)
- {
- res.Code = -1;
- res.Msg = errorinfo;
- return res;
- }
- res.Data = alarms;
- return res;
- }
- }
- }
- }
|