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); } }
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); }
public string AddOrEditGL_QADetectionPointAPI(GL_QADetectionPointDTO dto) { var result = _IPQCQualityServer.AddOrEditGL_QADetectionPoint(dto); return(result); }
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); }