Exemplo n.º 1
0
        public List <QualityDataInfo> ImportExcel(string path, ref string errMsg)
        {
            List <QualityDataInfo> infos = new List <QualityDataInfo>();

            try
            {
                string err = "";
                string[,] data = GetExcelData(path, ref err);
                #region 解析数组
                bool isOk = false;
                for (int i = 0; i < data.GetLength(0); i++)
                {
                    if (isOk)
                    {
                        if (data[i, 0] == "")
                        {
                            continue;
                        }
                        QualityDataInfo info  = new QualityDataInfo();
                        float           value = 0;
                        info.Measurements      = float.TryParse(data[i, 1], out value) ? value : 0;
                        info.SizeName          = data[i, 0];
                        info.StandardValue     = float.TryParse(data[i, 2], out value) ? value : 0;
                        info.ToleranceRangeMax = float.TryParse(data[i, 3], out value) ? value : 0;
                        info.ToleranceRangeMin = float.TryParse(data[i, 4], out value) ? value : 0;
                        info.OutOfTolerance    = float.TryParse(data[i, 6], out value) ? value : 0;
                        infos.Add(info);
                    }
                    else
                    {
                        if (data[i, 0] == "名称")
                        {
                            isOk = true;
                        }
                    }
                }
                #endregion
                errMsg = "ok";
                return(infos);
            }
            catch (Exception ex)
            {
                errMsg = ex.Message;
                return(null);
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                var orderId            = int.Parse(context.Request["orderId"]);
                OrderQualityInfo infos = new OrderQualityInfo();
                infos.WorkPieceQualityInfoList = new List <WorkPieceQualityInfo>();
                using (JDJS_WMS_DB_USEREntities model = new JDJS_WMS_DB_USEREntities())
                {
                    var qualitys = model.JDJS_WMS_Quality_Detection_Measurement_Table.Where(r => r.OrderID == orderId);
                    foreach (var item in qualitys)
                    {
                        string workPieceNum = item.WorkpieceNumber;
                        var    oldWork      = infos.WorkPieceQualityInfoList.Where(r => r.WorkPieceNum == "工件:" + workPieceNum).FirstOrDefault();
                        if (oldWork == null)
                        {
                            WorkPieceQualityInfo info = new WorkPieceQualityInfo();
                            info.WorkPieceNum           = "工件:" + workPieceNum;
                            info.ProcessQualityInfoList = new List <ProcessQualityInfo>();
                            infos.WorkPieceQualityInfoList.Add(info);
                            oldWork = infos.WorkPieceQualityInfoList.Where(r => r.WorkPieceNum == "工件:" + workPieceNum).FirstOrDefault();
                        }
                        string processNum = item.ProcessNum.ToString();
                        var    oldProcess = oldWork.ProcessQualityInfoList.Where(r => r.ProcessNum == processNum).FirstOrDefault();
                        if (oldProcess == null)
                        {
                            ProcessQualityInfo info = new ProcessQualityInfo();
                            info.ProcessNum       = processNum;
                            info.ErCiYuanInfoList = new ErCiYuanInfo();
                            info.ErCiYuanInfoList.QualityDataInfoList = new List <QualityDataInfo>();
                            info.SanZuoBiaoList = new SanZuoBiao();
                            info.SanZuoBiaoList.QualityDataInfoList = new List <QualityDataInfo>();
                            info.DefaultList = new Default();
                            info.DefaultList.QualityDataInfoList = new List <QualityDataInfo>();
                            oldWork.ProcessQualityInfoList.Add(info);
                            oldProcess = oldWork.ProcessQualityInfoList.Where(r => r.ProcessNum == processNum).FirstOrDefault();
                        }
                        QualityDataInfo dataInfo = new QualityDataInfo();
                        dataInfo.Id = item.ID;
                        float value = 0;
                        dataInfo.Measurements      = float.TryParse(item.Measurements.ToString(), out value) ? value : 0;
                        dataInfo.OutOfTolerance    = float.TryParse(item.OutOfTolerance.ToString(), out value) ? value : 0;
                        dataInfo.SizeName          = item.SizeName;
                        dataInfo.StandardValue     = float.TryParse(item.StandardValue.ToString(), out value) ? value : 0;
                        dataInfo.ToleranceRangeMax = float.TryParse(item.ToleranceRangeMax.ToString(), out value) ? value : 0;
                        dataInfo.ToleranceRangeMin = float.TryParse(item.ToleranceRangeMin.ToString(), out value) ? value : 0;
                        switch (item.Type)
                        {
                        case "二次元":
                            oldProcess.ErCiYuanInfoList.QualityDataInfoList.Add(dataInfo);
                            break;

                        case "三坐标":
                            oldProcess.SanZuoBiaoList.QualityDataInfoList.Add(dataInfo);
                            break;

                        default:
                            oldProcess.DefaultList.QualityDataInfoList.Add(dataInfo);
                            break;
                        }
                    }
                }
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                var json = serializer.Serialize(infos);
                context.Response.Write(json);
            }
            catch (Exception ex)
            {
                context.Response.Write(ex.Message);
                return;
            }
        }