Ejemplo n.º 1
0
        public string AddOrEditGL_QADetectionPoint(GL_QADetectionPointDTO dto)
        {
            string errorMessage = string.Empty;

            try
            {
                GL_QADetectionPoint entityContext;
                if (dto.QADetectionPointID == 0)
                {
                    entityContext               = new GL_QADetectionPoint();
                    entityContext.StationID     = dto.StationID;
                    entityContext.WIP           = dto.WIP;
                    entityContext.ScanIN        = dto.ScanIN;
                    entityContext.ScanOUT       = dto.ScanOUT;
                    entityContext.ScanNG        = dto.ScanNG;
                    entityContext.ScanBACK      = dto.ScanBACK;
                    entityContext.IsEnabled     = dto.IsEnabled;
                    entityContext.Modified_UID  = dto.Modified_UID;
                    entityContext.Modified_Date = dto.Modified_Date;
                    gL_QADetectionPointRepository.Add(entityContext);
                    unitOfWork.Commit();
                }
                else
                {
                    entityContext               = gL_QADetectionPointRepository.GetById(dto.QADetectionPointID);
                    entityContext.StationID     = dto.StationID;
                    entityContext.WIP           = dto.WIP;
                    entityContext.ScanIN        = dto.ScanIN;
                    entityContext.ScanOUT       = dto.ScanOUT;
                    entityContext.ScanNG        = dto.ScanNG;
                    entityContext.ScanBACK      = dto.ScanBACK;
                    entityContext.IsEnabled     = dto.IsEnabled;
                    entityContext.Modified_UID  = dto.Modified_UID;
                    entityContext.Modified_Date = dto.Modified_Date;
                    gL_QADetectionPointRepository.Update(entityContext);
                    unitOfWork.Commit();
                }

                return("0");
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                return(ex.Message);
            }
        }
Ejemplo n.º 2
0
        public GL_QADetectionPointDTO GetStationsDetectionPointByID(int StationID)
        {
            GL_Station             Station             = _stationRepository.GetById(StationID);
            GL_QADetectionPointDTO qADetectionPointDTO = new GL_QADetectionPointDTO();
            var gGL_QADetectionPointDTO = gL_QADetectionPointRepository.GetStationsDetectionPointByID(StationID);

            if (gGL_QADetectionPointDTO != null)
            {
                qADetectionPointDTO = gGL_QADetectionPointDTO;
            }
            else
            {
                qADetectionPointDTO.StationID      = Station.StationID;
                qADetectionPointDTO.StationName    = Station.StationName;
                qADetectionPointDTO.MESStationName = Station.MESStationName;
            }
            return(qADetectionPointDTO);
        }
Ejemplo n.º 3
0
        public string AddOrEditGL_QADetectionPointAPI(GL_QADetectionPointDTO dto)
        {
            var result = _IPQCQualityServer.AddOrEditGL_QADetectionPoint(dto);

            return(result);
        }
Ejemplo n.º 4
0
        public static List <GL_IPQCQualityReportDTO> GetGL_IPQCQualityReportDTOs(GL_StationDTO item, List <GL_IPQCQualityReportDTO> iPQCQualityReportDTOs, TimeIntervalDTO timeIntervalDTO,
                                                                                 List <WP_IPQCDTO> ScanINs, List <WP_IPQCDTO> ScanBACKs, List <WP_IPQCDTO> ScanNGs, List <WP_IPQCDTO> ScanOUTs, GL_QADetectionPointDTO gL_QADetectionPointDTO)
        {
            IPQCQualityService iPQCQualityService = new IPQCQualityService(
                new UnitOfWork(_DatabaseFactory),
                new IPQCQUalityReportRepository(_DatabaseFactory),
                new GL_QADetectionPointRepository(_DatabaseFactory),
                new GL_ShiftTimeRepository(_DatabaseFactory),
                new GL_StationRepository(_DatabaseFactory),
                new GL_QATargetYieldRepository(_DatabaseFactory),
                new IPQCQualityDetialRepository(_DatabaseFactory),
                new GL_GoldenStationCTRecordRepository(_DatabaseFactory),
                new GL_WIPHourOutputRepository(_DatabaseFactory)
                );
            GL_IPQCQualityReportDTO gL_IPQCQualityReportDTO = new GL_IPQCQualityReportDTO();

            #region IPQC时段良率数据组装
            gL_IPQCQualityReportDTO.StationID         = item.StationID;
            gL_IPQCQualityReportDTO.ShiftID           = timeIntervalDTO.ShiftTimeID;
            gL_IPQCQualityReportDTO.TimeInterval      = timeIntervalDTO.TimeInterval;
            gL_IPQCQualityReportDTO.TimeIntervalIndex = timeIntervalDTO.TimeIntervalIndex;
            gL_IPQCQualityReportDTO.ProductDate       = timeIntervalDTO.ProductDate;
            //进料数
            gL_IPQCQualityReportDTO.InputNumber = GetInputNumber(timeIntervalDTO, item.StationID);
            //扫码 IN
            gL_IPQCQualityReportDTO.TestNumber = ScanINs != null ? ScanINs.Count : 0;
            //返修
            gL_IPQCQualityReportDTO.RepairNumber = ScanBACKs != null ? ScanBACKs.Count : 0;
            //NG
            gL_IPQCQualityReportDTO.NGNumber = ScanNGs != null ? ScanNGs.Count : 0;
            //二次OK数 OUT数
            gL_IPQCQualityReportDTO.SecondPassNumber = ScanOUTs != null ? ScanOUTs.Count : 0;
            //一次OK数 (MES-IPQC扫码IN)-(MES-IPQC返修)-(MES-IPQC-NG)
            gL_IPQCQualityReportDTO.FirstPassNumber = gL_IPQCQualityReportDTO.TestNumber - gL_IPQCQualityReportDTO.RepairNumber - gL_IPQCQualityReportDTO.NGNumber;

            #region 设置一次二次良率
            //一次良率  一次OK数/一次检验数
            if (gL_IPQCQualityReportDTO.FirstPassNumber != 0 && gL_IPQCQualityReportDTO.TestNumber != 0)
            {
                gL_IPQCQualityReportDTO.FirstYield = (gL_IPQCQualityReportDTO.FirstPassNumber * 1.0) / gL_IPQCQualityReportDTO.TestNumber;
            }
            else
            {
                gL_IPQCQualityReportDTO.FirstYield = 0.0;
            }
            //二次良率 二次OK数/(二次OK数+NG数)
            if (gL_IPQCQualityReportDTO.SecondPassNumber != 0)
            {
                gL_IPQCQualityReportDTO.SecondYield = (gL_IPQCQualityReportDTO.SecondPassNumber * 1.0) / (gL_IPQCQualityReportDTO.SecondPassNumber + gL_IPQCQualityReportDTO.NGNumber);
            }
            else
            {
                gL_IPQCQualityReportDTO.SecondYield = 0.0;
            }

            #endregion

            #region 设置一次二次目标良率
            var gLQATargetYieldDTOs = iPQCQualityService.GetGLQATargetYieldDTOList(item.StationID, timeIntervalDTO.ProductDate.ToString(FormatConstants.DateTimeFormatStringByDate));
            if (gLQATargetYieldDTOs != null && gLQATargetYieldDTOs.Count > 0)
            {
                var oneTargetYield = gLQATargetYieldDTOs.FirstOrDefault(o => o.Tag == 1);
                if (oneTargetYield != null)
                {
                    //一次目标良率
                    gL_IPQCQualityReportDTO.FirstTargetYield = Convert.ToDouble(oneTargetYield.TargetYield);
                }
                else
                {
                    //一次目标良率
                    gL_IPQCQualityReportDTO.FirstTargetYield = 0;
                }
                var twoTargetYield = gLQATargetYieldDTOs.FirstOrDefault(o => o.Tag == 2);

                if (twoTargetYield != null)
                {
                    //二次目标良率
                    gL_IPQCQualityReportDTO.SecondTargetYield = Convert.ToDouble(twoTargetYield.TargetYield);
                }
                else
                {
                    //二次目标良率
                    gL_IPQCQualityReportDTO.SecondTargetYield = 0;
                }
            }
            else
            {
                //一次目标良率
                gL_IPQCQualityReportDTO.FirstTargetYield = 0;
                //二次目标良率
                gL_IPQCQualityReportDTO.SecondTargetYield = 0;
            }
            #endregion

            //WIP
            gL_IPQCQualityReportDTO.WIP = gL_QADetectionPointDTO.WIP + gL_IPQCQualityReportDTO.InputNumber - gL_IPQCQualityReportDTO.NGNumber - gL_IPQCQualityReportDTO.SecondPassNumber;// - gL_IPQCQualityReportDTO.FirstPassNumber;

            gL_IPQCQualityReportDTO.ModifyTime     = DateTime.Now;
            gL_IPQCQualityReportDTO.NowDateTime    = timeIntervalDTO.NowDateTime;
            gL_IPQCQualityReportDTO.SerchEndTime   = timeIntervalDTO.SerchEndTime;
            gL_IPQCQualityReportDTO.SerchStartTime = timeIntervalDTO.SerchStartTime;

            //  需要查看数据是否存在 如果存在 则要把IPQCQualityReport_UID赋值
            var iPQCQualityReportDTO = iPQCQualityService.GetGLIPQCQualityReportDTO(item.StationID, timeIntervalDTO.ShiftTimeID, timeIntervalDTO.TimeIntervalIndex, timeIntervalDTO.ProductDate, timeIntervalDTO.TimeInterval);
            if (iPQCQualityReportDTO != null)
            {
                gL_IPQCQualityReportDTO.IPQCQualityReport_UID = iPQCQualityReportDTO.IPQCQualityReport_UID;
            }

            iPQCQualityReportDTOs.Add(gL_IPQCQualityReportDTO);
            #endregion

            return(iPQCQualityReportDTOs);
        }