duan
2024-08-21 22bd5bc1ce2b49284cc2f042c7f4f48619fcf85b
提交 | 用户 | age
091239 1 using DIXWeb.DAL;
A 2 using DIXWeb.Entity.Statement;
3 using DIXWeb.Entity.Workflow;
62e492 4 using DIXWeb.Util.Helper;
091239 5 using System;
A 6 using System.Collections.Generic;
7 using System.Data;
8 using System.Linq;
9 using System.Text;
10 using System.Threading.Tasks;
11
12 namespace DIXWeb.Business.GlobalM
13 {
14     public class StatementBusiness
15     {
1bf8ef 16         public Receive GetICS(int OrgId,int InspectObjectTypeId, int InspectTypeId, DateTime TimeBegin, DateTime TimeEnd, int PageIndex, int PageSize)
91f86c 17         {
091239 18             Receive receive = new Receive();
A 19             try
20             {
21                 using (DBContext db = new DBContext())
22                 {
23                     System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
1bf8ef 24                         new System.Data.SqlClient.SqlParameter("@OrgId", OrgId),
091239 25                         new System.Data.SqlClient.SqlParameter("@IspectObjectTypeId", InspectObjectTypeId),
A 26                         new System.Data.SqlClient.SqlParameter("@InspectTypeId", InspectTypeId),
27                         new System.Data.SqlClient.SqlParameter("@TimeBegin", TimeBegin),
28                         new System.Data.SqlClient.SqlParameter("@TimeEnd", TimeEnd),
29                         new System.Data.SqlClient.SqlParameter("@pageIndex", PageIndex),
30                         new System.Data.SqlClient.SqlParameter("@pageSize", PageSize),
31                         new System.Data.SqlClient.SqlParameter("@Total", 0),
32                     };
33                     int index = paramList.Length - 1;
34                     paramList[index].Direction = ParameterDirection.Output;
1bf8ef 35                     List<EntityISC> list = db.Database.SqlQuery<EntityISC>("exec dbo.zp_GetICS @OrgId,@IspectObjectTypeId,@InspectTypeId,@TimeBegin,@TimeEnd,@pageIndex,@pageSize,@Total output ", paramList).ToList();
091239 36                     receive.rows = list;
A 37                     receive.total = int.Parse(paramList[index].Value.ToString());
38
39                     receive.Extend = this.GetEChartsByISCList(list);//转换
40
41                     receive.Code = 200;
42                     receive.Message = "SUCCESS";
43                 }
44             }
45             catch (Exception ex)
46             {
47                 receive.Code = 500;
48                 receive.Message = ex.Message;
49             }
50             return receive;
51         }
52
91f86c 53         private ECharts GetEChartsByISCList(List<EntityISC> list)
A 54         {
091239 55             ECharts record = new ECharts();
7d5292 56             record.LegendData = new string[] { "未点检", "点检OK", "现场维修OK", "维修中", "维修完成" };
091239 57
91f86c 58             List<string> setDate = new List<string>();
091239 59             List<string> setType = new List<string>();
A 60             for (int i = 0; i < list.Count; i++)
61             {
62                 if (!setDate.Contains(list[i].Attention)) { setDate.Add(list[i].Attention); }
63                 if (!setType.Contains(list[i].InspectObjectTypeName)) { setType.Add(list[i].InspectObjectTypeName); }
64             }
65             record.xAxisData = setDate.ToArray<string>();
66             //每种类型5个
91f86c 67             record.EChartsSeriesArr = new EChartsSeries[setType.Count * 5];
091239 68             int index = 0;
A 69             for (int i = 0; i < setType.Count; i++)
70             {
71                 string InspectObjectTypeName = setType[i];
91f86c 72
091239 73                 record.EChartsSeriesArr[index] = new EChartsSeries();
A 74                 record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
91f86c 75                 int[] LastCheckArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.LastCheck).ToArray<int>();
091239 76                 record.EChartsSeriesArr[index].name = "未点检";
A 77                 record.EChartsSeriesArr[index].type = "bar";
91f86c 78                 record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-点检状态";
091239 79                 record.EChartsSeriesArr[index].data = LastCheckArr;
A 80                 record.EChartsSeriesArr[index].ShowDesc = 0;
81                 index++;
91f86c 82
091239 83                 record.EChartsSeriesArr[index] = new EChartsSeries();
A 84                 record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
91f86c 85                 int[] CheckedOKArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.CheckedOK).ToArray<int>();
091239 86                 record.EChartsSeriesArr[index].name = "点检OK";
A 87                 record.EChartsSeriesArr[index].type = "bar";
7d5292 88                 record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-现场OK";
091239 89                 record.EChartsSeriesArr[index].data = CheckedOKArr;
A 90                 record.EChartsSeriesArr[index].ShowDesc = 0;
91                 index++;
92
93                 record.EChartsSeriesArr[index] = new EChartsSeries();
94                 record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
91f86c 95                 int[] CheckedNGArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.CanRepair).ToArray<int>();
7d5292 96                 record.EChartsSeriesArr[index].name = "现场维修OK";
091239 97                 record.EChartsSeriesArr[index].type = "bar";
7d5292 98                 record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-现场OK";
091239 99                 record.EChartsSeriesArr[index].data = CheckedNGArr;
A 100                 record.EChartsSeriesArr[index].ShowDesc = 1;
101                 index++;
102
103                 record.EChartsSeriesArr[index] = new EChartsSeries();
104                 record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
91f86c 105                 int[] DealOKArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.InRepair).ToArray<int>();
7d5292 106                 record.EChartsSeriesArr[index].name = "维修中";
091239 107                 record.EChartsSeriesArr[index].type = "bar";
A 108                 record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-维修状态";
109                 record.EChartsSeriesArr[index].data = DealOKArr;
110                 record.EChartsSeriesArr[index].ShowDesc = 0;
111                 index++;
112
113                 record.EChartsSeriesArr[index] = new EChartsSeries();
114                 record.EChartsSeriesArr[index].InspectObjectTypeName = InspectObjectTypeName;
91f86c 115                 int[] DealNGArr = list.Where(x => x.InspectObjectTypeName.Equals(InspectObjectTypeName)).Select(x => x.OKRepair).ToArray<int>();
7d5292 116                 record.EChartsSeriesArr[index].name = "维修完成";
091239 117                 record.EChartsSeriesArr[index].type = "bar";
A 118                 record.EChartsSeriesArr[index].stack = InspectObjectTypeName + "-维修状态";
119                 record.EChartsSeriesArr[index].data = DealNGArr;
120                 record.EChartsSeriesArr[index].ShowDesc = 0;
121                 index++;
122
123             }
124             return record;
125         }
126
127
91f86c 128
A 129         public Receive GetTD(int InspectObjectId, DateTime TimeBegin, DateTime TimeEnd, int PageIndex, int PageSize)
091239 130         {
A 131             Receive receive = new Receive();
132             try
133             {
134                 using (DBContext db = new DBContext())
135                 {
918b8a 136                     string yMinTemperature = string.Empty;
A 137                     string yMaxTemperature = string.Empty;
138                     string yMinHumidity = string.Empty;
139                     string yMaxHumidity = string.Empty;
140
091239 141                     System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
c82ec1 142                         new System.Data.SqlClient.SqlParameter("@IspectObjectId", InspectObjectId),
091239 143                         new System.Data.SqlClient.SqlParameter("@TimeBegin", TimeBegin),
A 144                         new System.Data.SqlClient.SqlParameter("@TimeEnd", TimeEnd),
145                         new System.Data.SqlClient.SqlParameter("@pageIndex", PageIndex),
146                         new System.Data.SqlClient.SqlParameter("@pageSize", PageSize),
918b8a 147                         new System.Data.SqlClient.SqlParameter("@yMinTemperature",SqlDbType.VarChar,32),
A 148                         new System.Data.SqlClient.SqlParameter("@yMaxTemperature",SqlDbType.VarChar,32),
149                         new System.Data.SqlClient.SqlParameter("@yMinHumidity",SqlDbType.VarChar,32),
150                         new System.Data.SqlClient.SqlParameter("@yMaxHumidity",SqlDbType.VarChar,32),
151                         new System.Data.SqlClient.SqlParameter("@Total",SqlDbType.Int,8),
091239 152                     };
918b8a 153
A 154                     int index_yMinTemperature = paramList.Length - 5;
155                     int index_yMaxTemperature = paramList.Length - 4;
156                     int index_yMinHumidity = paramList.Length - 3;
157                     int index_yMaxHumidity = paramList.Length - 2;
091239 158                     int index = paramList.Length - 1;
918b8a 159
A 160                     paramList[index_yMinTemperature].Direction = ParameterDirection.Output;
161                     paramList[index_yMaxTemperature].Direction = ParameterDirection.Output;
162                     paramList[index_yMinHumidity].Direction = ParameterDirection.Output;
163                     paramList[index_yMaxHumidity].Direction = ParameterDirection.Output;
091239 164                     paramList[index].Direction = ParameterDirection.Output;
918b8a 165
675b00 166                     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();
091239 167                     receive.rows = list;
918b8a 168
A 169                     yMinTemperature = paramList[index_yMinTemperature].Value.ToString();
170                     yMaxTemperature = paramList[index_yMaxTemperature].Value.ToString();
171                     yMinHumidity = paramList[index_yMinHumidity].Value.ToString();
172                     yMaxHumidity = paramList[index_yMaxHumidity].Value.ToString();
091239 173                     receive.total = int.Parse(paramList[index].Value.ToString());
91f86c 174
1a43f0 175                     object[] objArr = GetTDList(list);
A 176                     List<int> xAxisList = objArr[0] as List<int>;
177                     List<string> lineNameList = objArr[1] as List<string>;
56915e 178                     List<string> xAxisStrList = objArr[2] as List<string>;
62e492 179                     receive.Extend = GetEChartsTemperature(list, xAxisList, lineNameList, xAxisStrList, yMinTemperature, yMaxTemperature);//转换
A 180                     receive.Extend1 = GetEChartsHumidity(list, xAxisList, lineNameList, xAxisStrList, yMinHumidity, yMaxHumidity);//转换
091239 181
A 182                     receive.Code = 200;
183                     receive.Message = "SUCCESS";
184                 }
185             }
186             catch (Exception ex)
187             {
188                 receive.Code = 500;
189                 receive.Message = ex.Message;
190             }
191             return receive;
192         }
193
9cbcff 194         public Receive GetNeedCheckDetail(int InspectTypeId, int InspectObjectTypeId, string Attention, int PageIndex, int PageSize)
c82ec1 195         {
A 196             Receive receive = new Receive();
197             try
198             {
199                 using (DBContext db = new DBContext())
200                 {
201                     System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
202                         new System.Data.SqlClient.SqlParameter("@InspectObjectTypeId", InspectObjectTypeId),
203                         new System.Data.SqlClient.SqlParameter("@InspectTypeId", InspectTypeId),
204                         new System.Data.SqlClient.SqlParameter("@Attention", Attention),
9cbcff 205                         new System.Data.SqlClient.SqlParameter("@PageIndex", PageIndex),
A 206                         new System.Data.SqlClient.SqlParameter("@PageSize", PageSize),
207                         new System.Data.SqlClient.SqlParameter("@Total", 0),
c82ec1 208                     };
9cbcff 209                     int index = paramList.Length - 1;
A 210                     paramList[index].Direction = ParameterDirection.Output;
211                     List<ReceiveNeedCheck> list = db.Database.SqlQuery<ReceiveNeedCheck>("exec dbo.zp_getLastCheckDetail @Attention,@InspectObjectTypeId,@InspectTypeId,@PageIndex,@PageSize,@Total output ", paramList).ToList();
c82ec1 212                     receive.rows = list;
9cbcff 213                     receive.total = int.Parse(paramList[index].Value.ToString());
c82ec1 214                     receive.Code = 200;
A 215                     receive.Message = "SUCCESS";
216                 }
217             }
218             catch (Exception ex)
219             {
220                 receive.Code = 500;
221                 receive.Message = ex.Message;
222             }
223             return receive;
224         }
091239 225
62e492 226         private ECharts GetEChartsTemperature(List<TransitionDiagram> list, List<int> xAxisList, List<string> lineNameList, List<string> xAxisStrList, string yMin, string yMax)
091239 227         {
A 228             ECharts record = new ECharts();
918b8a 229             record.yMin = yMin;
A 230             record.yMax = yMax;
231
1a43f0 232             record.LegendData = new string[] { "温度上限", "温度下限" };
56915e 233             record.xAxisData = xAxisStrList.ToArray<string>();
091239 234             //每种类型5个
1a43f0 235             record.EChartsSeriesArr = new EChartsSeries[lineNameList.Count + 2];
091239 236             int index = 0;
1a43f0 237             for (int i = 0; i < lineNameList.Count; i++)
091239 238             {
1a43f0 239                 string InspectObjectName = lineNameList[i];
91f86c 240
091239 241                 record.EChartsSeriesArr[index] = new EChartsSeries();
c82ec1 242                 record.EChartsSeriesArr[index].InspectObjectName = InspectObjectName;
1a43f0 243                 string[] TemperatureArr = new string[xAxisList.Count];
A 244                 for (int j = 0; j < xAxisList.Count; j++)
245                 {
246                     TransitionDiagram temp = list.Where(x => x.InspectObjectName.Equals(InspectObjectName) && x.RowId == xAxisList[j]).FirstOrDefault();
247                     TemperatureArr[j] = temp == null ? "" : temp.Temperature;
248                 }
c82ec1 249                 record.EChartsSeriesArr[index].name = InspectObjectName + "-温度";
091239 250                 record.EChartsSeriesArr[index].type = "line";
c82ec1 251                 record.EChartsSeriesArr[index].stack = InspectObjectName + "-温度";
091239 252                 record.EChartsSeriesArr[index].data = TemperatureArr;
A 253                 record.EChartsSeriesArr[index].ShowDesc = 0;
254                 index++;
62e492 255             }
1a43f0 256             record.EChartsSeriesArr[index] = new EChartsSeries();
A 257             record.EChartsSeriesArr[index].InspectObjectName = "温度上限";
258             string[] TemperatureMaxArr = list.Select(x => x.TemperatureMax).ToArray<string>();
259             record.EChartsSeriesArr[index].name = "温度上限";
260             record.EChartsSeriesArr[index].type = "line";
261             record.EChartsSeriesArr[index].stack = "温度上限";
91f86c 262             record.EChartsSeriesArr[index].data = TemperatureMaxArr;
1a43f0 263             record.EChartsSeriesArr[index].ShowDesc = 0;
A 264             index++;
265             record.EChartsSeriesArr[index] = new EChartsSeries();
266             record.EChartsSeriesArr[index].InspectObjectName = "温度下限";
267             string[] TemperatureMinArr = list.Select(x => x.TemperatureMin).ToArray<string>();
268             record.EChartsSeriesArr[index].name = "温度下限";
269             record.EChartsSeriesArr[index].type = "line";
270             record.EChartsSeriesArr[index].stack = "温度下限";
271             record.EChartsSeriesArr[index].data = TemperatureMinArr;
272             record.EChartsSeriesArr[index].ShowDesc = 0;
273             index++;
274             return record;
275         }
091239 276
1a43f0 277
918b8a 278         private ECharts GetEChartsHumidity(List<TransitionDiagram> list, List<int> xAxisList, List<string> lineNameList, List<string> xAxisStrList, string yMin, string yMax)
1a43f0 279         {
A 280             ECharts record = new ECharts();
918b8a 281             record.yMin = yMin;
A 282             record.yMax = yMax;
283
1a43f0 284             record.LegendData = new string[] { "湿度上限", "湿度下限" };
56915e 285             record.xAxisData = xAxisStrList.ToArray<string>();
1a43f0 286             //每种类型5个
A 287             record.EChartsSeriesArr = new EChartsSeries[lineNameList.Count + 2];
288             int index = 0;
289             for (int i = 0; i < lineNameList.Count; i++)
290             {
291                 string InspectObjectName = lineNameList[i];
091239 292                 record.EChartsSeriesArr[index] = new EChartsSeries();
c82ec1 293                 record.EChartsSeriesArr[index].InspectObjectName = InspectObjectName;
1a43f0 294                 string[] HumidityArr = new string[xAxisList.Count];
A 295                 for (int j = 0; j < xAxisList.Count; j++)
296                 {
297                     TransitionDiagram temp = list.Where(x => x.InspectObjectName.Equals(InspectObjectName) && x.RowId == xAxisList[j]).FirstOrDefault();
298                     HumidityArr[j] = temp == null ? "" : temp.Humidity;
299                 }
c82ec1 300                 record.EChartsSeriesArr[index].name = InspectObjectName + "-湿度";
091239 301                 record.EChartsSeriesArr[index].type = "line";
c82ec1 302                 record.EChartsSeriesArr[index].stack = InspectObjectName + "-湿度";
091239 303                 record.EChartsSeriesArr[index].data = HumidityArr;
A 304                 record.EChartsSeriesArr[index].ShowDesc = 0;
305                 index++;
306             }
1a43f0 307             record.EChartsSeriesArr[index] = new EChartsSeries();
A 308             record.EChartsSeriesArr[index].InspectObjectName = "湿度上限";
309             string[] HumidityMaxArr = list.Select(x => x.HumidityMax).ToArray<string>();
310             record.EChartsSeriesArr[index].name = "湿度上限";
311             record.EChartsSeriesArr[index].type = "line";
312             record.EChartsSeriesArr[index].stack = "湿度上限";
313             record.EChartsSeriesArr[index].data = HumidityMaxArr;
314             record.EChartsSeriesArr[index].ShowDesc = 0;
315             index++;
316             record.EChartsSeriesArr[index] = new EChartsSeries();
317             record.EChartsSeriesArr[index].InspectObjectName = "湿度下限";
318             string[] HumidityMinArr = list.Select(x => x.HumidityMin).ToArray<string>();
319             record.EChartsSeriesArr[index].name = "湿度下限";
320             record.EChartsSeriesArr[index].type = "line";
321             record.EChartsSeriesArr[index].stack = "湿度下限";
322             record.EChartsSeriesArr[index].data = HumidityMinArr;
323             record.EChartsSeriesArr[index].ShowDesc = 0;
324             index++;
091239 325             return record;
A 326         }
327
1a43f0 328
91f86c 329         private object[] GetTDList(List<TransitionDiagram> list)
A 330         {
1a43f0 331             List<int> xAxisList = new List<int>();
56915e 332             List<string> xAxisStrList = new List<string>();
1a43f0 333             List<string> lineNameList = new List<string>();
A 334             for (int i = 0; i < list.Count; i++)
335             {
91f86c 336                 if (!xAxisList.Contains(list[i].RowId))
A 337                 {
56915e 338                     xAxisList.Add(list[i].RowId);
A 339                     xAxisStrList.Add(DateTime.Parse(list[i].Times).ToString("MM/dd HH:mm"));
340                 }
1a43f0 341                 if (!lineNameList.Contains(list[i].InspectObjectName)) { lineNameList.Add(list[i].InspectObjectName); }
A 342             }
91f86c 343             return new object[] { xAxisList, lineNameList, xAxisStrList };
1a43f0 344         }
A 345
62e492 346         public Receive GetItemNameByObjectCode(string InspectObjectCode)
A 347         {
348             Receive receive = new Receive();
349             try
350             {
351                 Dictionary<string, object> dictIn = new Dictionary<string, object>();
352                 dictIn.Add("@InspectObjectCode", InspectObjectCode);
353                 DataTable table = new DBHelper().GetDataTable("dbo.zp_GetItemNameByObjectCode", dictIn);
354                 
355                 receive.Code = 200;
356                 receive.Message = table.Rows[0][0].ToString();
357             }
358             catch (Exception ex)
359             {
360                 receive.Code = 500;
361                 receive.Message = ex.Message;
362             }
363             return receive;
364         }
1a43f0 365
62e492 366         public Receive GetObjectInspectDetail(string InspectObjectCode, DateTime TimeBegin, DateTime TimeEnd, int page = 1, int rows = 200)
A 367         {
368             Receive receive = new Receive();
369             try
370             {
371                 Dictionary<string, object> dictIn = new Dictionary<string, object>();
372                 List<string> dictOutAttr = new List<string>();
373                 dictIn.Add("@InspectObjectCode", InspectObjectCode);
374                 dictIn.Add("@TimeBegin", TimeBegin);
375                 dictIn.Add("@TimeEnd", TimeEnd);
376                 dictIn.Add("@PageIndex", page);
377                 dictIn.Add("@PageSize", rows);
378                 dictOutAttr.Add("@Total");
379                 dictOutAttr.Add("@colNameArrStr");
380                 object[] result = new DBHelper("DIX").GetDataTableWithOutPut("dbo.zp_GetObjectInspectDetail", dictIn, dictOutAttr);
381                 Dictionary<string, object> dictOut = result[1] as Dictionary<string, object>;
382                 string totalStr = dictOut["@Total"].ToString();
383                 if (string.IsNullOrEmpty(totalStr))
384                 {
385                     receive.Code = 404;
386                     receive.Message = "未查询到数据";
387                     return receive;
388                 }
389                 receive.total = int.Parse(totalStr);
390                 if (receive.total <= 0)
391                 {
392                     receive.Code = 404;
393                     receive.Message = "未查询到数据";
394                     return receive;
395                 }
396                 receive.Code = 200;
397                 receive.rows = new DataHelper().ToDataList(result[0] as DataTable);
398                 receive.Extend = dictOut["@colNameArrStr"].ToString();
399             }
400             catch (Exception ex)
401             {
402                 receive.Code = 500;
403                 receive.Message = ex.Message;
404             }
405             return receive;
406         }
091239 407     }
A 408 }