using DIXWeb.DAL;
|
using DIXWeb.Entity.Statement;
|
using DIXWeb.Entity.Workflow;
|
using DIXWeb.Util.Helper;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace DIXWeb.Business.GlobalM
|
{
|
public class StatementBusiness
|
{
|
public Receive GetICS(int OrgId,int InspectObjectTypeId, int InspectTypeId, DateTime TimeBegin, DateTime TimeEnd, int PageIndex, int PageSize)
|
{
|
Receive receive = new Receive();
|
try
|
{
|
using (DBContext db = new DBContext())
|
{
|
System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
|
new System.Data.SqlClient.SqlParameter("@OrgId", OrgId),
|
new System.Data.SqlClient.SqlParameter("@IspectObjectTypeId", InspectObjectTypeId),
|
new System.Data.SqlClient.SqlParameter("@InspectTypeId", InspectTypeId),
|
new System.Data.SqlClient.SqlParameter("@TimeBegin", TimeBegin),
|
new System.Data.SqlClient.SqlParameter("@TimeEnd", TimeEnd),
|
new System.Data.SqlClient.SqlParameter("@pageIndex", PageIndex),
|
new System.Data.SqlClient.SqlParameter("@pageSize", PageSize),
|
new System.Data.SqlClient.SqlParameter("@Total", 0),
|
};
|
int index = paramList.Length - 1;
|
paramList[index].Direction = ParameterDirection.Output;
|
List<EntityISC> list = db.Database.SqlQuery<EntityISC>("exec dbo.zp_GetICS @OrgId,@IspectObjectTypeId,@InspectTypeId,@TimeBegin,@TimeEnd,@pageIndex,@pageSize,@Total output ", paramList).ToList();
|
receive.rows = list;
|
receive.total = int.Parse(paramList[index].Value.ToString());
|
|
receive.Extend = this.GetEChartsByISCList(list);//转换
|
|
receive.Code = 200;
|
receive.Message = "SUCCESS";
|
}
|
}
|
catch (Exception ex)
|
{
|
receive.Code = 500;
|
receive.Message = ex.Message;
|
}
|
return receive;
|
}
|
|
private ECharts GetEChartsByISCList(List<EntityISC> list)
|
{
|
ECharts record = new ECharts();
|
record.LegendData = new string[] { "未点检", "点检OK", "现场维修OK", "维修中", "维修完成" };
|
|
List<string> setDate = new List<string>();
|
List<string> setType = new List<string>();
|
for (int i = 0; i < list.Count; i++)
|
{
|
if (!setDate.Contains(list[i].Attention)) { setDate.Add(list[i].Attention); }
|
if (!setType.Contains(list[i].InspectObjectTypeName)) { setType.Add(list[i].InspectObjectTypeName); }
|
}
|
record.xAxisData = setDate.ToArray<string>();
|
//每种类型5个
|
record.EChartsSeriesArr = new EChartsSeries[setType.Count * 5];
|
int index = 0;
|
for (int i = 0; i < setType.Count; i++)
|
{
|
string InspectObjectTypeName = setType[i];
|
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
|
int[] LastCheckArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.LastCheck).ToArray<int>();
|
record.EChartsSeriesArr[index].name = "未点检";
|
record.EChartsSeriesArr[index].type = "bar";
|
record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-点检状态";
|
record.EChartsSeriesArr[index].data = LastCheckArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
|
int[] CheckedOKArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.CheckedOK).ToArray<int>();
|
record.EChartsSeriesArr[index].name = "点检OK";
|
record.EChartsSeriesArr[index].type = "bar";
|
record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-现场OK";
|
record.EChartsSeriesArr[index].data = CheckedOKArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
|
int[] CheckedNGArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.CanRepair).ToArray<int>();
|
record.EChartsSeriesArr[index].name = "现场维修OK";
|
record.EChartsSeriesArr[index].type = "bar";
|
record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-现场OK";
|
record.EChartsSeriesArr[index].data = CheckedNGArr;
|
record.EChartsSeriesArr[index].ShowDesc = 1;
|
index++;
|
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
|
int[] DealOKArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.InRepair).ToArray<int>();
|
record.EChartsSeriesArr[index].name = "维修中";
|
record.EChartsSeriesArr[index].type = "bar";
|
record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-维修状态";
|
record.EChartsSeriesArr[index].data = DealOKArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
|
int[] DealNGArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.OKRepair).ToArray<int>();
|
record.EChartsSeriesArr[index].name = "维修完成";
|
record.EChartsSeriesArr[index].type = "bar";
|
record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-维修状态";
|
record.EChartsSeriesArr[index].data = DealNGArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
|
}
|
return record;
|
}
|
|
|
|
public Receive GetTD(int InspectObjectId, DateTime TimeBegin, DateTime TimeEnd, int PageIndex, int PageSize)
|
{
|
Receive receive = new Receive();
|
try
|
{
|
using (DBContext db = new DBContext())
|
{
|
string yMinTemperature = string.Empty;
|
string yMaxTemperature = string.Empty;
|
string yMinHumidity = string.Empty;
|
string yMaxHumidity = string.Empty;
|
|
System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
|
new System.Data.SqlClient.SqlParameter("@IspectObjectId", InspectObjectId),
|
new System.Data.SqlClient.SqlParameter("@TimeBegin", TimeBegin),
|
new System.Data.SqlClient.SqlParameter("@TimeEnd", TimeEnd),
|
new System.Data.SqlClient.SqlParameter("@pageIndex", PageIndex),
|
new System.Data.SqlClient.SqlParameter("@pageSize", PageSize),
|
new System.Data.SqlClient.SqlParameter("@yMinTemperature",SqlDbType.VarChar,32),
|
new System.Data.SqlClient.SqlParameter("@yMaxTemperature",SqlDbType.VarChar,32),
|
new System.Data.SqlClient.SqlParameter("@yMinHumidity",SqlDbType.VarChar,32),
|
new System.Data.SqlClient.SqlParameter("@yMaxHumidity",SqlDbType.VarChar,32),
|
new System.Data.SqlClient.SqlParameter("@Total",SqlDbType.Int,8),
|
};
|
|
int index_yMinTemperature = paramList.Length - 5;
|
int index_yMaxTemperature = paramList.Length - 4;
|
int index_yMinHumidity = paramList.Length - 3;
|
int index_yMaxHumidity = paramList.Length - 2;
|
int index = paramList.Length - 1;
|
|
paramList[index_yMinTemperature].Direction = ParameterDirection.Output;
|
paramList[index_yMaxTemperature].Direction = ParameterDirection.Output;
|
paramList[index_yMinHumidity].Direction = ParameterDirection.Output;
|
paramList[index_yMaxHumidity].Direction = ParameterDirection.Output;
|
paramList[index].Direction = ParameterDirection.Output;
|
|
List<TransitionDiagram> list = db.Database.SqlQuery<TransitionDiagram>("exec dbo.zp_GetTD @IspectObjectId,@TimeBegin,@TimeEnd,@pageIndex,@pageSize,@yMinTemperature output,@yMaxTemperature output,@yMinHumidity output,@yMaxHumidity output,@Total output ", paramList).ToList();
|
receive.rows = list;
|
|
yMinTemperature = paramList[index_yMinTemperature].Value.ToString();
|
yMaxTemperature = paramList[index_yMaxTemperature].Value.ToString();
|
yMinHumidity = paramList[index_yMinHumidity].Value.ToString();
|
yMaxHumidity = paramList[index_yMaxHumidity].Value.ToString();
|
receive.total = int.Parse(paramList[index].Value.ToString());
|
|
object[] objArr = GetTDList(list);
|
List<int> xAxisList = objArr[0] as List<int>;
|
List<string> lineNameList = objArr[1] as List<string>;
|
List<string> xAxisStrList = objArr[2] as List<string>;
|
receive.Extend = GetEChartsTemperature(list, xAxisList, lineNameList, xAxisStrList, yMinTemperature, yMaxTemperature);//转换
|
receive.Extend1 = GetEChartsHumidity(list, xAxisList, lineNameList, xAxisStrList, yMinHumidity, yMaxHumidity);//转换
|
|
receive.Code = 200;
|
receive.Message = "SUCCESS";
|
}
|
}
|
catch (Exception ex)
|
{
|
receive.Code = 500;
|
receive.Message = ex.Message;
|
}
|
return receive;
|
}
|
|
public Receive GetNeedCheckDetail(int InspectTypeId, int InspectObjectTypeId, string Attention, int PageIndex, int PageSize)
|
{
|
Receive receive = new Receive();
|
try
|
{
|
using (DBContext db = new DBContext())
|
{
|
System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
|
new System.Data.SqlClient.SqlParameter("@InspectObjectTypeId", InspectObjectTypeId),
|
new System.Data.SqlClient.SqlParameter("@InspectTypeId", InspectTypeId),
|
new System.Data.SqlClient.SqlParameter("@Attention", Attention),
|
new System.Data.SqlClient.SqlParameter("@PageIndex", PageIndex),
|
new System.Data.SqlClient.SqlParameter("@PageSize", PageSize),
|
new System.Data.SqlClient.SqlParameter("@Total", 0),
|
};
|
int index = paramList.Length - 1;
|
paramList[index].Direction = ParameterDirection.Output;
|
List<ReceiveNeedCheck> list = db.Database.SqlQuery<ReceiveNeedCheck>("exec dbo.zp_getLastCheckDetail @Attention,@InspectObjectTypeId,@InspectTypeId,@PageIndex,@PageSize,@Total output ", paramList).ToList();
|
receive.rows = list;
|
receive.total = int.Parse(paramList[index].Value.ToString());
|
receive.Code = 200;
|
receive.Message = "SUCCESS";
|
}
|
}
|
catch (Exception ex)
|
{
|
receive.Code = 500;
|
receive.Message = ex.Message;
|
}
|
return receive;
|
}
|
|
private ECharts GetEChartsTemperature(List<TransitionDiagram> list, List<int> xAxisList, List<string> lineNameList, List<string> xAxisStrList, string yMin, string yMax)
|
{
|
ECharts record = new ECharts();
|
record.yMin = yMin;
|
record.yMax = yMax;
|
|
record.LegendData = new string[] { "温度上限", "温度下限" };
|
record.xAxisData = xAxisStrList.ToArray<string>();
|
//每种类型5个
|
record.EChartsSeriesArr = new EChartsSeries[lineNameList.Count + 2];
|
int index = 0;
|
for (int i = 0; i < lineNameList.Count; i++)
|
{
|
string InspectObjectName = lineNameList[i];
|
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectName = InspectObjectName;
|
string[] TemperatureArr = new string[xAxisList.Count];
|
for (int j = 0; j < xAxisList.Count; j++)
|
{
|
TransitionDiagram temp = list.Where(x => x.InspectObjectName.Equals(InspectObjectName) && x.RowId == xAxisList[j]).FirstOrDefault();
|
TemperatureArr[j] = temp == null ? "" : temp.Temperature;
|
}
|
record.EChartsSeriesArr[index].name = InspectObjectName + "-温度";
|
record.EChartsSeriesArr[index].type = "line";
|
record.EChartsSeriesArr[index].stack = InspectObjectName + "-温度";
|
record.EChartsSeriesArr[index].data = TemperatureArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
}
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectName = "温度上限";
|
string[] TemperatureMaxArr = list.Select(x => x.TemperatureMax).ToArray<string>();
|
record.EChartsSeriesArr[index].name = "温度上限";
|
record.EChartsSeriesArr[index].type = "line";
|
record.EChartsSeriesArr[index].stack = "温度上限";
|
record.EChartsSeriesArr[index].data = TemperatureMaxArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectName = "温度下限";
|
string[] TemperatureMinArr = list.Select(x => x.TemperatureMin).ToArray<string>();
|
record.EChartsSeriesArr[index].name = "温度下限";
|
record.EChartsSeriesArr[index].type = "line";
|
record.EChartsSeriesArr[index].stack = "温度下限";
|
record.EChartsSeriesArr[index].data = TemperatureMinArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
return record;
|
}
|
|
|
private ECharts GetEChartsHumidity(List<TransitionDiagram> list, List<int> xAxisList, List<string> lineNameList, List<string> xAxisStrList, string yMin, string yMax)
|
{
|
ECharts record = new ECharts();
|
record.yMin = yMin;
|
record.yMax = yMax;
|
|
record.LegendData = new string[] { "湿度上限", "湿度下限" };
|
record.xAxisData = xAxisStrList.ToArray<string>();
|
//每种类型5个
|
record.EChartsSeriesArr = new EChartsSeries[lineNameList.Count + 2];
|
int index = 0;
|
for (int i = 0; i < lineNameList.Count; i++)
|
{
|
string InspectObjectName = lineNameList[i];
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectName = InspectObjectName;
|
string[] HumidityArr = new string[xAxisList.Count];
|
for (int j = 0; j < xAxisList.Count; j++)
|
{
|
TransitionDiagram temp = list.Where(x => x.InspectObjectName.Equals(InspectObjectName) && x.RowId == xAxisList[j]).FirstOrDefault();
|
HumidityArr[j] = temp == null ? "" : temp.Humidity;
|
}
|
record.EChartsSeriesArr[index].name = InspectObjectName + "-湿度";
|
record.EChartsSeriesArr[index].type = "line";
|
record.EChartsSeriesArr[index].stack = InspectObjectName + "-湿度";
|
record.EChartsSeriesArr[index].data = HumidityArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
}
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectName = "湿度上限";
|
string[] HumidityMaxArr = list.Select(x => x.HumidityMax).ToArray<string>();
|
record.EChartsSeriesArr[index].name = "湿度上限";
|
record.EChartsSeriesArr[index].type = "line";
|
record.EChartsSeriesArr[index].stack = "湿度上限";
|
record.EChartsSeriesArr[index].data = HumidityMaxArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
record.EChartsSeriesArr[index] = new EChartsSeries();
|
record.EChartsSeriesArr[index].InspectObjectName = "湿度下限";
|
string[] HumidityMinArr = list.Select(x => x.HumidityMin).ToArray<string>();
|
record.EChartsSeriesArr[index].name = "湿度下限";
|
record.EChartsSeriesArr[index].type = "line";
|
record.EChartsSeriesArr[index].stack = "湿度下限";
|
record.EChartsSeriesArr[index].data = HumidityMinArr;
|
record.EChartsSeriesArr[index].ShowDesc = 0;
|
index++;
|
return record;
|
}
|
|
|
private object[] GetTDList(List<TransitionDiagram> list)
|
{
|
List<int> xAxisList = new List<int>();
|
List<string> xAxisStrList = new List<string>();
|
List<string> lineNameList = new List<string>();
|
for (int i = 0; i < list.Count; i++)
|
{
|
if (!xAxisList.Contains(list[i].RowId))
|
{
|
xAxisList.Add(list[i].RowId);
|
xAxisStrList.Add(DateTime.Parse(list[i].Times).ToString("MM/dd HH:mm"));
|
}
|
if (!lineNameList.Contains(list[i].InspectObjectName)) { lineNameList.Add(list[i].InspectObjectName); }
|
}
|
return new object[] { xAxisList, lineNameList, xAxisStrList };
|
}
|
|
public Receive GetItemNameByObjectCode(string InspectObjectCode)
|
{
|
Receive receive = new Receive();
|
try
|
{
|
Dictionary<string, object> dictIn = new Dictionary<string, object>();
|
dictIn.Add("@InspectObjectCode", InspectObjectCode);
|
DataTable table = new DBHelper().GetDataTable("dbo.zp_GetItemNameByObjectCode", dictIn);
|
|
receive.Code = 200;
|
receive.Message = table.Rows[0][0].ToString();
|
}
|
catch (Exception ex)
|
{
|
receive.Code = 500;
|
receive.Message = ex.Message;
|
}
|
return receive;
|
}
|
|
public Receive GetObjectInspectDetail(string InspectObjectCode, DateTime TimeBegin, DateTime TimeEnd, int page = 1, int rows = 200)
|
{
|
Receive receive = new Receive();
|
try
|
{
|
Dictionary<string, object> dictIn = new Dictionary<string, object>();
|
List<string> dictOutAttr = new List<string>();
|
dictIn.Add("@InspectObjectCode", InspectObjectCode);
|
dictIn.Add("@TimeBegin", TimeBegin);
|
dictIn.Add("@TimeEnd", TimeEnd);
|
dictIn.Add("@PageIndex", page);
|
dictIn.Add("@PageSize", rows);
|
dictOutAttr.Add("@Total");
|
dictOutAttr.Add("@colNameArrStr");
|
object[] result = new DBHelper("DIX").GetDataTableWithOutPut("dbo.zp_GetObjectInspectDetail", dictIn, dictOutAttr);
|
Dictionary<string, object> dictOut = result[1] as Dictionary<string, object>;
|
string totalStr = dictOut["@Total"].ToString();
|
if (string.IsNullOrEmpty(totalStr))
|
{
|
receive.Code = 404;
|
receive.Message = "未查询到数据";
|
return receive;
|
}
|
receive.total = int.Parse(totalStr);
|
if (receive.total <= 0)
|
{
|
receive.Code = 404;
|
receive.Message = "未查询到数据";
|
return receive;
|
}
|
receive.Code = 200;
|
receive.rows = new DataHelper().ToDataList(result[0] as DataTable);
|
receive.Extend = dictOut["@colNameArrStr"].ToString();
|
}
|
catch (Exception ex)
|
{
|
receive.Code = 500;
|
receive.Message = ex.Message;
|
}
|
return receive;
|
}
|
}
|
}
|