public MES_NGAPIParam GetMesNGParam(QADetailSearch model, Machine_Station_CustomerDTO stationInfo)
        {
            var            timeInterval = model.Time_interval.Split('-');
            var            startTime    = timeInterval[0];
            var            endTime      = timeInterval[1];
            MES_NGAPIParam requestParam = new MES_NGAPIParam();

            requestParam.startTime         = Convert.ToDateTime(model.ProductDate + " " + startTime).AddHours(-0.5).ToString("yyyy-MM-dd HH:mm");
            requestParam.endTime           = Convert.ToDateTime(model.ProductDate + " " + endTime).AddHours(-0.5).ToString("yyyy-MM-dd HH:mm");
            requestParam.PIS_Customer_Name = stationInfo.PIS_Customer_Name;
            requestParam.MES_Customer_Name = stationInfo.MES_Customer_Name;
            return(requestParam);
        }
        public List <QualityAssurance_ExceptionType> QueryQAExceptionTypeAPI(QADetailSearch searchData)
        {
            List <QualityAssurance_ExceptionType> result = new List <QualityAssurance_ExceptionType>();

            try
            {
                string sqlWhere = "";

                if (!string.IsNullOrEmpty(searchData.ShortName))
                {
                    sqlWhere = string.Format(@" ExType.ShortName=N'{0}' ", searchData.ShortName.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.TypeName))
                {
                    sqlWhere = sqlWhere + string.Format(@"AND ExType.TypeName=N'{0}' ", searchData.TypeName.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.TypeCode))
                {
                    sqlWhere = sqlWhere + string.Format(@"AND ExType.Org_TypeCode='{0}' ", searchData.TypeCode.Replace("'", "''"));
                }
                if (searchData.FlowChart_Master_UID != 0)
                {
                    sqlWhere = sqlWhere + string.Format(@"AND ExType.FlowChart_Master_UID={0} ", searchData.FlowChart_Master_UID);
                }
                if (sqlWhere.StartsWith("AND"))
                {
                    sqlWhere = sqlWhere.Remove(0, 3);
                }

                string sql = string.Format(@"
                                            DECLARE @TypeCode NVARCHAR(50)
                                            SELECT @TypeCode=Org_TypeCode FROM dbo.QualityAssurance_ExceptionType ExType WITH(NOLOCK)
                                            WHERE  {0} 

                                            IF {1}
                                            BEGIN 
                                                IF ISNULL(@TypeCode,'')=''
                                                BEGIN
                                                    SET @TypeCode=''
                                                END
                                                ELSE
                                                BEGIN
		                                            IF @TypeCode LIKE '%000000'
		                                            BEGIN
			                                            SELECT * FROM dbo.QualityAssurance_ExceptionType ExType WITH(NOLOCK)
			                                            WHERE ExType.EnableFlag=1 AND ExType.FlowChart_Master_UID={2} and ExType.Org_TypeCode LIKE SUBSTRING(@TypeCode,1,3)+'%000' 
                                                        AND ( (TypeClassify=N'外观不良' AND Org_TypeCode NOT LIKE '%000000' AND Org_TypeCode NOT LIKE '%000')
				                                        OR (TypeClassify=N'尺寸不良' AND Org_TypeCode NOT LIKE '%000000'))
		                                            END
		                                            ELSE IF @TypeCode LIKE '%000'
		                                            BEGIN 
			                                            SELECT * FROM dbo.QualityAssurance_ExceptionType ExType WITH(NOLOCK)
			                                            WHERE ExType.EnableFlag=1 AND ExType.FlowChart_Master_UID={2} and ExType.Org_TypeCode LIKE SUBSTRING(@TypeCode,1,6)+'%' 
                                                        AND ( (TypeClassify=N'外观不良' AND Org_TypeCode NOT LIKE '%000000' AND Org_TypeCode NOT LIKE '%000')
				                                        OR (TypeClassify=N'尺寸不良' AND Org_TypeCode NOT LIKE '%000000'))
		                                            END
                                                    ELSE
		                                            BEGIN
                                                        SELECT * FROM dbo.QualityAssurance_ExceptionType ExType WITH(NOLOCK)
                                                        WHERE ExType.EnableFlag=1 and {0} 
		                                            END
                                                END
                                            END", sqlWhere, searchData.IsContainsChild ? "1=1" : "1<>1", searchData.FlowChart_Master_UID);

                var query = DataContext.Database.SqlQuery <QualityAssurance_ExceptionType>(sql).ToList();
                result = query;
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            return(result);
        }
Exemple #3
0
        public List <QAInputDetailVM> QueryQAInputDetailVM(QADetailSearch searchData, bool searchHistoryFlag)
        {
            List <QAInputDetailVM> result = new List <QAInputDetailVM>();

            try
            {
                string masterSql = "";
                if (searchData.QAMaster_UID != 0)
                {
                    masterSql = string.Format(" QaDetail.QualityAssurance_InputMaster_UID={0}", searchData.QAMaster_UID);
                }
                else
                {
                    masterSql = string.Format(" QaMaster.FlowChart_Detail_UID={0}", searchData.FlowChart_Detail_UID);
                }


                #region --- where sql

                string sqlWhere = "";
                if (!string.IsNullOrEmpty(searchData.ShortName))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND ExType.ShortName=N'{0}'", searchData.ShortName.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.TypeName))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND ExType.TypeName=N'{0}'", searchData.TypeName.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.TypeCode))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND ExType.Org_TypeCode='{0}'", searchData.TypeCode.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.Project))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND ExType.FlowChart_Master_UID={0}", searchData.FlowChart_Master_UID);
                }

                if (sqlWhere.StartsWith(" AND"))
                {
                    sqlWhere = sqlWhere.Remove(0, 4);
                }

                #endregion
                string sql   = @"
                                            DECLARE @TypeCode NVARCHAR(50)
                                            SELECT @TypeCode=Org_TypeCode FROM dbo.QualityAssurance_ExceptionType ExType WITH(NOLOCK)
                                            WHERE {1}

                                            IF {2}
                                            BEGIN 
                                                DECLARE @levelOne NVARCHAR(3),
		                                                @levelTwo NVARCHAR(3),
		                                                @levelThree NVARCHAR(3)
                                                IF ISNULL(@TypeCode,'')=''
                                                BEGIN
	                                                SET @TypeCode=''
                                                END
                                                ELSE
                                                BEGIN
                                                    SET @levelOne=SUBSTRING(@TypeCode,1,3)
                                                    SET @levelTwo=SUBSTRING(@TypeCode,4,3)
                                                    SET @levelThree=SUBSTRING(@TypeCode,7,3)
                                                    IF @levelThree<>'000'
					                                BEGIN
						                                SET @TypeCode = @levelOne + @levelTwo + @levelThree
					                                END
                                                    ELSE IF @levelTwo <> '000'
                                                    BEGIN
                                                        SET @TypeCode = @levelOne + @levelTwo + '%'			
                                                    END
                                                    ELSE
                                                    BEGIN
                                                        SET @TypeCode = @levelOne + '%'
                                                    END 
                                                END
                                            END
                                            SELECT ExType.TypeName AS ExceptionTypeName,
                                                ExType.BadTypeCode as BadTypeCode,
                                                ExType.BadTypeEnglishCode as BadTypeEnglishCode,
                                                QaDetail.QualityAssurance_InputDetail_UID,
                                                {4} AS QualityAssurance_InputMaster_UID,
                                                QaDetail.ExceptionType_UID,
                                                QaDetail.RepairNG_Qty,
                                                QaDetail.NG_Qty,
                                                QaDetail.SepcialAccept_Qty,
                                                QaDetail.Repair_Qty,
                                                QaDetail.IsDeleted,
                                                QaDetail.Create_Date,
                                                QaDetail.Creator_UID,
                                                QaDetail.Modified_Date,
                                                QaDetail.Modified_UID,
                                                QaDetail.Displace_Qty FROM {0} QaDetail WITH(NOLOCK) 
                                            INNER JOIN dbo.QualityAssurance_ExceptionType ExType WITH(NOLOCK)
                                            ON ExType.ExceptionType_UID = QaDetail.ExceptionType_UID
                                            INNER JOIN {5} QaMaster WITH(NOLOCK)
                                            ON QaMaster.QualityAssurance_InputMaster_UID = QaDetail.QualityAssurance_InputMaster_UID
                                            WHERE {3} and ExType.Org_TypeCode LIKE @TypeCode
                                            ";
                string sql1  = string.Format(sql, searchHistoryFlag? "dbo.QualityAssurance_InputDetail_History" : "dbo.QualityAssurance_InputDetail", sqlWhere, searchData.IsContainsChild ? "1=1" : "1<>1", masterSql, searchData.QAMaster_UID, searchHistoryFlag ? "dbo.QualityAssurance_InputMaster_History" : "dbo.QualityAssurance_InputMaster");
                var    query = DataContext.Database.SqlQuery <QAInputDetailVM>(sql1).ToList();

                result = query.ToList();
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            return(result);
        }
Exemple #4
0
        public List <QAInputDetailVM> QueryQAInputDetail(QADetailSearch searchData)
        {
            List <QAInputDetailVM> result = new List <QAInputDetailVM>();

            try
            {
                if (searchData.QAMaster_UID == 0 && ("白班小计,夜班小计,全天".Contains(searchData.Time_interval)))
                {
                    return(QueryInputDetailForDaySum(searchData));
                }
                bool     searchHistoryFlag = false;
                TimeSpan t = DateTime.Now - Convert.ToDateTime(searchData.ProductDate);
                if (t.Days >= 7)
                {
                    searchHistoryFlag = true;
                }
                if (!string.IsNullOrEmpty(searchData.TypeCode) || !string.IsNullOrEmpty(searchData.TypeName) || !string.IsNullOrEmpty(searchData.ShortName))
                {
                    return(QueryQAInputDetailVM(searchData, searchHistoryFlag));
                }
                string sql = string.Empty;

                #region

                sql = string.Format(@"
                              SELECT  ExType.TypeName AS ExceptionTypeName ,
                                      ExType.BadTypeCode as BadTypeCode,
                                      ExType.BadTypeEnglishCode as BadTypeEnglishCode,
                                      detail.QualityAssurance_InputDetail_UID ,
                                      detail.QualityAssurance_InputMaster_UID ,
                                      detail.ExceptionType_UID ,
                                      detail.RepairNG_Qty ,
                                      detail.NG_Qty ,
                                      detail.SepcialAccept_Qty ,
                                      detail.Repair_Qty,
                                      detail.Displace_Qty                    
                              INTO    #temp
                              FROM    dbo.{3} detail WITH ( NOLOCK )
                                      INNER JOIN dbo.QualityAssurance_ExceptionType Extype WITH ( NOLOCK ) ON Extype.ExceptionType_UID = detail.ExceptionType_UID
                                      INNER JOIN dbo.{4} qaMa WITH ( NOLOCK ) ON qaMa.QualityAssurance_InputMaster_UID = detail.QualityAssurance_InputMaster_UID
                              WHERE   qaMa.QualityAssurance_InputMaster_UID = {0}
                                      AND IsDeleted = 0


                              IF EXISTS (SELECT TOP 1 1 FROM #temp where Repair_Qty IS not NULL AND SepcialAccept_Qty IS not NULL AND 
                                        RepairNG_Qty IS not NULL AND NG_Qty IS not NULL )
                              BEGIN
                                      SELECT  ExceptionTypeName ,
									      BadTypeCode,
									      BadTypeEnglishCode,
                                          QualityAssurance_InputDetail_UID ,
                                          QualityAssurance_InputMaster_UID ,
                                          ExceptionType_UID ,
                                          RepairNG_Qty ,
                                          NG_Qty ,
                                          SepcialAccept_Qty ,
                                          Repair_Qty,
                                          Displace_Qty
                                      FROM    #temp
                                      ORDER BY ExceptionType_UID
                              END  
                              ElSE
                              BEGIN
                                  SELECT  ExceptionTypeName ,
								          BadTypeCode,
									      BadTypeEnglishCode,
                                          QualityAssurance_InputDetail_UID ,
                                          QualityAssurance_InputMaster_UID ,
                                          ExceptionType_UID ,
                                          RepairNG_Qty ,
                                          NG_Qty ,
                                          SepcialAccept_Qty ,
                                          Repair_Qty,
                                          Displace_Qty
                                      FROM    #temp
                                  UNION

                                  SELECT  EType.TypeName AS ExceptionTypeName ,
								          EType.BadTypeCode as BadTypeCode,
			                              EType.BadTypeEnglishCode as BadTypeEnglishCode,
                                          0 AS QualityAssurance_InputDetail_UID ,
                                          {0} AS QualityAssurance_InputMaster_UID ,
                                          EType.ExceptionType_UID ,
                                          null AS RepairNG_Qty ,
                                          null AS NG_Qty ,
                                          null AS SepcialAccept_Qty ,
                                          null AS Repair_Qty,
                                          null AS Displace_Qty
                                  FROM    dbo.ExceptionTypeWithFlowchart EWF WITH ( NOLOCK )
                                          INNER JOIN dbo.QualityAssurance_ExceptionType EType WITH ( NOLOCK ) ON EType.ExceptionType_UID = EWF.ExceptionType_UID
                                  WHERE   EWF.FlowChart_Detail_UID = {1}
                                          AND EWF.FlowChart_Master_UID = {2}
                                          AND EType.FlowChart_Master_UID={2}
                                          AND ewf.ExceptionType_UID NOT IN ( SELECT   ExceptionType_UID
                                                                            FROM  #temp )
                              END
                              DROP TABLE #temp", searchData.QAMaster_UID, searchData.FlowChart_Detail_UID, searchData.FlowChart_Master_UID, searchHistoryFlag ? "QualityAssurance_InputDetail_History" : "QualityAssurance_InputDetail",
                                    searchHistoryFlag ? "QualityAssurance_InputMaster_History" : "QualityAssurance_InputMaster");


                #endregion

                var query = DataContext.Database.SqlQuery <QAInputDetailVM>(sql).ToList();

                result = query.ToList();
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            return(result);
        }
Exemple #5
0
        public List <QAInputDetailVM> QueryInputDetailForDaySum(QADetailSearch searchData)
        {
            List <QAInputDetailVM> result = new List <QAInputDetailVM>();

            try
            {
                string time_interval = string.Empty;
                if (searchData.Time_interval.Contains("白班小计"))
                {
                    time_interval = "Daily_Sum";
                }
                else if (searchData.Time_interval.Contains("夜班小计"))
                {
                    time_interval = "Night_Sum";
                }
                else if (searchData.Time_interval.Contains("全天"))
                {
                    time_interval = "ALL";
                }

                string sqlWhere = "";
                if (!string.IsNullOrEmpty(searchData.ShortName))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND QAType.ShortName=N'{0}'", searchData.ShortName.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.TypeName))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND QAType.TypeName=N'{0}'", searchData.TypeName.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.TypeCode))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND QAType.Org_TypeCode='{0}'", searchData.TypeCode.Replace("'", "''"));
                }
                if (!string.IsNullOrEmpty(searchData.Project))
                {
                    sqlWhere = sqlWhere + string.Format(@" AND QAType.FlowChart_Master_UID={0}", searchData.FlowChart_Master_UID);
                }

                bool     searchHistoryFlag = false;
                TimeSpan t = DateTime.Now - Convert.ToDateTime(searchData.ProductDate);
                if (t.Days >= 7)
                {
                    searchHistoryFlag = true;
                }

                string sql = string.Format(@"DECLARE @ProductDate Date,
	                                        
	                                        @FlowChart_Detail_UID INT,
	                                        @SumType NVARCHAR(50),
	                                        @MaterialType NVARCHAR(50),
	                                        @Color NVARCHAR(50)     
	
                                           SET @ProductDate = N'{0}'
                                           SET @FlowChart_Detail_UID = {1}
                                           SET @SumType = N'{2}'
                                           SET @MaterialType = N'{3}'
                                           SET @Color = N'{4}' 
	
	                                        DECLARE  @TempQAMasterSum TABLE(
		                                        QualityAssurance_InputMaster_UID INT,
		                                        FlowChart_Detail_UID int,
		                                        Process NVARCHAR(50),
		                                        color NVARCHAR(50),
		                                        Time_Interval NVARCHAR(20),
		                                        Product_Date DATE,
		                                        Input INT,
		                                        FirstCheck_Qty INT,
		                                        FirstOK_Qty INT,
		                                        FirstRejectionRate DECIMAL,
		                                        NG_Qty INT,
		                                        SurfaceSA_Qty INT,
		                                        SizeSA_Qty INT,
		                                        RepairCheck_Qty INT,
		                                        RepairOK_Qty INT,
		                                        Shipment_Qty INT,
		                                        WIPForCheck_Qty INT,
		                                        NGFlag BIT,
		                                        FirstCheckFlag BIT,
		                                        Displace_Qty INT,
                                                DisplaceFlag BIT)
		
	                                        INSERT INTO @TempQAMasterSum(
		                                        QualityAssurance_InputMaster_UID, 
		                                        FlowChart_Detail_UID,
		                                        Process ,
		                                        color,
		                                        Time_Interval,
		                                        Product_Date ,
		                                        Input ,
		                                        FirstCheck_Qty ,
		                                        FirstOK_Qty ,
		                                        FirstRejectionRate ,
		                                        NG_Qty ,
		                                        SurfaceSA_Qty ,
		                                        SizeSA_Qty ,
		                                        RepairCheck_Qty ,
		                                        RepairOK_Qty ,
		                                        Shipment_Qty ,
		                                        WIPForCheck_Qty ,
		                                        NGFlag,
		                                        FirstCheckFlag,
		                                        Displace_Qty,
                                                DisplaceFlag
		                                        )
	                                        EXEC usp_GetQAMasterDaySum @ProductDate,@FlowChart_Detail_UID,@SumType,@MaterialType,@Color

	                                        SELECT QAType.TypeName as ExceptionTypeName, QAType.BadTypeCode as BadTypeCode, QAType.BadTypeEnglishCode as BadTypeEnglishCode,QAType.ExceptionType_UID,0 as QualityAssurance_InputDetail_UID,0 AS QualityAssurance_InputMaster_UID ,SUM(QADetail.NG_Qty) AS NG_Qty,SUM(QADetail.RepairNG_Qty) AS RepairNG_Qty,SUM(QADetail.Repair_Qty) AS Repair_Qty,
	                                        SUM(QADetail.SepcialAccept_Qty) AS SepcialAccept_Qty,SUM(QADetail.Displace_Qty) AS Displace_Qty FROM @TempQAMasterSum QAMaster
	                                        INNER JOIN dbo.{5} QADetail ON QADetail.QualityAssurance_InputMaster_UID = QAMaster.QualityAssurance_InputMaster_UID 
	                                        INNER JOIN dbo.QualityAssurance_ExceptionType QAType ON QAType.ExceptionType_UID = QADetail.ExceptionType_UID
	                                        WHERE QADetail.IsDeleted=0 {6}
                                            GROUP BY QAType.TypeName,QAType.ExceptionType_UID , QAType.BadTypeCode,QAType.BadTypeEnglishCode
	                                        "    , searchData.ProductDate, searchData.FlowChart_Detail_UID, time_interval, searchData.MaterialType, searchData.Color, searchHistoryFlag ? "QualityAssurance_InputDetail_History" : "QualityAssurance_InputDetail", sqlWhere);

                var query = DataContext.Database.SqlQuery <QAInputDetailVM>(sql).ToList();

                result = query.ToList();
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            return(result);
        }