예제 #1
0
        public IHttpActionResult QueryQAInputDetailVMAPI(dynamic data)
        {
            var jsonData   = data.ToString();
            var SearchData = JsonConvert.DeserializeObject <QADetailSearch>(jsonData);
            List <MesNGResult> ResultInfo = new List <MesNGResult>();

            try
            {
                var model = machineYieldReportService.GetStationList(SearchData.FlowChart_Master_UID, SearchData.FlowChart_Detail_UID);
                if (!string.IsNullOrEmpty(model.MES_Customer_Name) && !string.IsNullOrEmpty(model.MES_Station_Name))
                {
                    //通过时段获取开始时间结束时间
                    var requestInterval = machineYieldReportService.GetMesNGParam(SearchData, model);
                    //调用MES的接口
                    var     apiUrl       = string.Format("pis/NgDetail?Customer={0}&StartTime={1}&EndTime={2}&Station={3}", model.MES_Customer_Name, requestInterval.startTime, requestInterval.endTime, model.MES_Station_Name);
                    var     path         = SearchData.MesAPIPath + apiUrl;
                    var     resultMes    = HttpHelper.HttpGet(path);
                    JObject josnData     = (JObject)JsonConvert.DeserializeObject(resultMes);
                    var     NgDetailList = JsonConvert.DeserializeObject <List <MesNgDetail> >(josnData["data"].ToString());


                    //用SN的List, 颜色去过滤
                    var SNList = NgDetailList.Select(i => i.SN).ToList();
                    var color  = (string)SearchData.Color;
                    //var MES_ColoredData = MES_SNOriginalService.QueryMES_SNOriginalBySN(SNList).Where(x => x.Color == color);
                    var MES_ColoredData = MES_SNOriginalService.GetMES_SNOriginalBySN(SNList).Where(x => x.Color == color);
                    //从MES_SNOriginal获取到数据后再过滤
                    var MES_SNList = MES_ColoredData.Select(x => x.SeriesNumber);
                    NgDetailList = NgDetailList.Where(x => MES_SNList.Contains(x.SN)).ToList();

                    ResultInfo = NgDetailList.GroupBy(x => new { x.DefectName }).Select(g => new MesNGResult {
                        DefectName = g.Key.DefectName, NG_Point = g.Count()
                    }).ToList();
                }
            }
            catch (Exception)
            {
            }

            var result = QualityService.QueryQAInputDetailVM(SearchData, ResultInfo);

            return(Ok(result));
        }
예제 #2
0
        public IHttpActionResult GetStationListAPI(int Machine_Customer_UID)
        {
            var result = machineYieldReportService.GetStationList(Machine_Customer_UID);

            return(Ok(result));
        }