Ejemplo n.º 1
0
        public HttpResponseMessage GetReportDocList(dynamic concent)
        {
            string result = "";

            try
            {
                string    sql = "select * from tblReport_Doc where fldReportName='" + concent.fldReportName + "' and fldType='" + concent.fldType + "'";
                DataTable dt  = rule.SqlQueryForDataTatable("EntityContext", sql);
                result = rule.JsonStr("ok", "", dt);
            }
            catch (Exception e)
            {
                result = rule.JsonStr("error", "", e.Message);
            }

            return(new HttpResponseMessage {
                Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
            });
        }
        public HttpResponseMessage Query_WithDate(Query_WithDate_Info info)
        {
            string result = string.Empty;

            try
            {
                Query_WithDate_Return returndata = new Query_WithDate_Return();

                DateTime BeginDate = DateTime.Parse(info.fldBeginDate);

                DateTime EndDate = DateTime.Parse(info.fldEndDate);

                List <Model.Lap.tblFW_Dictionary> list_dic = new List <Model.Lap.tblFW_Dictionary>();

                List <tblEQIW_R_Item> list_item = new List <tblEQIW_R_Item>();

                List <tblEQIW_R_Auto_Remark> list_remark = new List <tblEQIW_R_Auto_Remark>();

                using (Model.Lap.LAPContext db = new Model.Lap.LAPContext())
                {
                    list_dic = (from x in db.tblFW_Dictionary
                                where x.fldTableName == "vwEQIW_R_Basedata_Auto"
                                select x).ToList();
                }

                using (EntityContext db = new EntityContext())
                {
                    list_remark = (from x in db.tblEQIW_R_Auto_Remark
                                   select x).ToList();


                    list_item = (from x in db.tblEQIW_R_Item
                                 select x).ToList();
                }

                returndata.list_dic = list_dic;

                returndata.list_remark = list_remark;


                returndata.list_item = list_item;



                DataTable dt = new DataTable();



                if (info.type == "hour")
                {
                    List <tblEQIW_R_HourData_Auto> list = new List <tblEQIW_R_HourData_Auto>();

                    tblEQIW_R_HourData_Auto hour_auto = new tblEQIW_R_HourData_Auto();

                    Dictionary <object, object> dictionary = GetProperties(hour_auto);

                    foreach (var item in dictionary)
                    {
                        dt.Columns.Add(item.Key.ToString(), typeof(string));
                    }

                    foreach (var item in info.fldItemCode.Split(','))
                    {
                        dt.Columns.Add(item + "_Value", typeof(string));
                    }

                    dt.Columns.Add("备注", typeof(string));


                    DataTable dtTemp = rule.SqlQueryForDataTatable("EntityContext", "select * from tblEQIW_R_HourData_Auto");

                    DataTable dtItem = rule.SqlQueryForDataTatable("EntityContext", "select * from tblEQIW_R_Auto_Itemstarget");


                    using (EntityContext db = new EntityContext())
                    {
                        if (info.fldSTCode == "-1")
                        {
                            list = (from x in db.tblEQIW_R_HourData_Auto
                                    select x).ToList();
                        }
                        else
                        {
                            list = (from x in db.tblEQIW_R_HourData_Auto
                                    where info.fldSTCode.Contains(x.fldSTCode + "." + x.fldRCode + "." + x.fldRSCode)
                                    select x).ToList();
                        }
                    }



                    foreach (var item in list)
                    {
                        item.fldDate = DateTime.Parse(item.fldYear + "-" + item.fldMonth + "-" + item.fldDay + " " + item.fldHour + ":" + item.fldMinute + ":00");
                    }

                    list = (from x in list
                            where x.fldDate >= BeginDate &&
                            x.fldDate <= EndDate
                            select x).ToList();



                    var query = (from x in list
                                 group x by new
                    {
                        x.fldSTCode,
                        x.fldRCode,
                        x.fldRSCode,
                        x.fldYear,
                        x.fldMonth,
                        x.fldDay,
                        x.fldHour
                    }
                                 into g
                                 select new
                    {
                        g.Key,
                        Data = g
                    }).ToList();



                    foreach (var item in query)
                    {
                        DataRow dr     = dt.NewRow();
                        var     query2 = (from x in dtTemp.AsEnumerable()
                                          where x["fldSTCode"].ToString() == item.Key.fldSTCode &&
                                          x["fldRCode"].ToString() == item.Key.fldRCode &&
                                          x["fldRSCode"].ToString() == item.Key.fldRSCode &&
                                          x["fldYear"].ToString() == item.Key.fldYear.ToString() &&
                                          x["fldMonth"].ToString() == item.Key.fldMonth.ToString() &&
                                          x["fldDay"].ToString() == item.Key.fldDay.ToString() &&
                                          x["fldHour"].ToString() == item.Key.fldHour.ToString()
                                          select x).CopyToDataTable();

                        foreach (DataColumn item3 in query2.Columns)
                        {
                            dr[item3.ColumnName] = query2.Rows[0][item3.ColumnName].ToString();
                        }


                        foreach (DataRow item3 in query2.Rows)
                        {
                            if (dr.Table.Columns.Contains(item3["fldItemCode"].ToString() + "_Value"))
                            {
                                if (item3["fldItemValue"].ToString() != "")
                                {
                                    double value = double.Parse(item3["fldItemValue"].ToString());

                                    if (value == 0)
                                    {
                                        dr[item3["fldItemCode"].ToString() + "_Value"] = item3["fldItemValue"].ToString() + "_XTJCCW";
                                    }
                                    else
                                    {
                                        var query3 = (from x in dtItem.AsEnumerable()
                                                      where x["fldItemCode"].ToString() == item3["fldItemCode"].ToString() &&
                                                      x["fldRSCode"].ToString() == item.Key.fldRCode
                                                      select x).FirstOrDefault();

                                        if (query3 != null)
                                        {
                                            if (value < double.Parse(query3["fldItemTarget"].ToString()))
                                            {
                                                dr[item3["fldItemCode"].ToString() + "_Value"] = item3["fldItemValue"].ToString() + "_XTJCCW";
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        var query4 = (from x in list_remark
                                      where x.fldSTCode == item.Key.fldSTCode &&
                                      x.fldRCode == item.Key.fldRCode &&
                                      x.fldRSCode == item.Key.fldRSCode &&
                                      x.fldDate == DateTime.Parse(item.Key.fldYear + "-" + item.Key.fldMonth + "-" + item.Key.fldDay + " " + item.Key.fldHour + ":00:00")
                                      select x).ToList();

                        if (query4.Count > 0)
                        {
                            foreach (var item4 in query4)
                            {
                                if (dr.Table.Columns.Contains(item4.fldItemCode + "_Value"))
                                {
                                    // _0 代表 是用户手工自己填的备注信息
                                    dr[item4.fldItemCode + "_Value"] += "_YHQRCW";
                                    dr["备注"] += item4.fldItemName + "[" + item4.fldItemCode + "]" + ":" + item4.fldRemark + ";";
                                }
                            }
                        }



                        dt.Rows.Add(dr);
                    }



                    returndata.dt = dt;
                }



                if (info.type == "day")
                {
                    List <tblEQIW_R_Basedata_Auto> list_data = new List <tblEQIW_R_Basedata_Auto>();

                    using (EntityContext db = new EntityContext())
                    {
                        list_data = (from x in db.tblEQIW_R_Basedata_Auto
                                     where info.fldSTCode.Contains(x.fldSTCode + "." + x.fldRCode + "." + x.fldRSCode)
                                     select x).ToList();
                    }

                    foreach (var item in list_data)
                    {
                        item.fldDate = DateTime.Parse(item.fldYear + "-" + item.fldMonth + "-" + item.fldDay + " " + item.fldHour + ":" + item.fldMinute + ":00");
                    }

                    list_data = (from x in list_data
                                 where x.fldDate >= BeginDate &&
                                 x.fldDate <= EndDate
                                 select x).ToList();


                    var query = (from x in list_data
                                 group x by new
                    {
                        x.fldSTCode,
                        x.fldRCode,
                        x.fldRSCode,
                        x.fldYear,
                        x.fldMonth,
                        x.fldDay,
                        x.fldHour,
                        x.fldMinute,
                        x.fldSAMPH,
                        x.fldSAMPR
                    }
                                 into g
                                 select new
                    {
                        g.Key,
                        Data = g
                    }).ToList();



                    returndata.obj_list_data = query;
                }



                if (info.type == "week" || info.type == "month" || info.type == "year")
                {
                    List <tblEQIW_R_Basedata_Auto> list_data = new List <tblEQIW_R_Basedata_Auto>();

                    using (EntityContext db = new EntityContext())
                    {
                        list_data = (from x in db.tblEQIW_R_Basedata_Auto
                                     where info.fldSTCode.Contains(x.fldSTCode + "." + x.fldRCode + "." + x.fldRSCode)
                                     select x).ToList();
                    }


                    foreach (var item in list_data)
                    {
                        item.fldDate = DateTime.Parse(item.fldYear + "-" + item.fldMonth + "-" + item.fldDay + " " + item.fldHour + ":" + item.fldMinute + ":00");
                    }


                    list_data = (from x in list_data
                                 where x.fldDate >= BeginDate &&
                                 x.fldDate <= EndDate
                                 select x).ToList();


                    var query = from x in list_data
                                group x by new
                    {
                        x.fldSTCode,
                        x.fldSTName,
                        x.fldRCode,
                        x.fldRName,
                        x.fldRSCode,
                        x.fldRSName,
                        x.fldItemCode,
                        x.fldItemName
                    } into g
                        select new
                    {
                        g.Key,
                        Data     = g,
                        AvgValue = g.Average(z => z.fldItemValue)
                    };

                    returndata.obj_list_data = query;
                }



                result = rule.JsonStr("ok", "", returndata);
            }
            catch (Exception e)
            {
                result = rule.JsonStr("error", e.Message, "");
            }

            return(new HttpResponseMessage {
                Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
            });
        }