238 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			238 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Data;
							 | 
						|||
| 
								 | 
							
								using System.Data.SqlClient;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace BLL
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public static class APIReportQueryService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 根据焊工号获取焊工业绩
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据焊工号获取焊工业绩
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="welderCode"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static Model.WelderPerformanceItem GetWelderPerformanceByWelderCode(string projectId, string welderCode)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.HJGLDB db = new Model.HJGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //  todo 二维码分解待做
							 | 
						|||
| 
								 | 
							
								                var getDataLists = from x in db.View_WelderPerformance
							 | 
						|||
| 
								 | 
							
								                                   where x.ProjectId == projectId && x.WelderCode == welderCode
							 | 
						|||
| 
								 | 
							
								                                   select new Model.WelderPerformanceItem
							 | 
						|||
| 
								 | 
							
								                                   {
							 | 
						|||
| 
								 | 
							
								                                       WelderCode = x.WelderCode,
							 | 
						|||
| 
								 | 
							
								                                       WelderName = x.WelderName,
							 | 
						|||
| 
								 | 
							
								                                       UnitName = x.UnitName,
							 | 
						|||
| 
								 | 
							
								                                       WelderLevel = x.WelderLevel,
							 | 
						|||
| 
								 | 
							
								                                       TotalJotDin = x.Nowtotal_jot.ToString() + "/" + x.Nowtotal_din.ToString(),
							 | 
						|||
| 
								 | 
							
								                                       OneCheckJotNum = x.OneCheckJotNum.ToString(),
							 | 
						|||
| 
								 | 
							
								                                       OneCheckPassJotNum = x.OneCheckPassJotNum,
							 | 
						|||
| 
								 | 
							
								                                       OnePassRate = x.PassRate,
							 | 
						|||
| 
								 | 
							
								                                       OneCheckTotalFilm = x.OneCheckTotalFilm.ToString(),
							 | 
						|||
| 
								 | 
							
								                                       OneCheckPassFilm = x.OneCheckPassFilm.ToString(),
							 | 
						|||
| 
								 | 
							
								                                       PassfilmRate = x.Passfilmrate,
							 | 
						|||
| 
								 | 
							
								                                       RepairJotNum = x.OneCheckRepairJotNum.ToString(),
							 | 
						|||
| 
								 | 
							
								                                       ExpandJotNum = x.ExpandJotNum.ToString()
							 | 
						|||
| 
								 | 
							
								                                   };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                return getDataLists.FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据条件获取管线综合信息
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据条件获取管线综合信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId">项目</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="workAreaId">区域</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="pipelineCode">管线号</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.PipeLineQueryItem> GetPipeLineInfo(string projectId, string workAreaId, string pipelineCode)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            List<SqlParameter> listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@unitId", null));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(pipelineCode))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@pipelineCode", pipelineCode));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@pipelineCode", null));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(workAreaId))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@workAreaId", workAreaId));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@workAreaId", null));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@materialId", null));
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@projectId", projectId));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            SqlParameter[] parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable dt = SQLHelper.GetDataTableRunProc("sp_rpt_IsoCmprehensive", parameter);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            List<Model.PipeLineQueryItem> reportList = new List<Model.PipeLineQueryItem>();
							 | 
						|||
| 
								 | 
							
								            foreach (DataRow row in dt.Rows)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Model.PipeLineQueryItem report = new Model.PipeLineQueryItem();
							 | 
						|||
| 
								 | 
							
								                report.UnitName= row["UnitName"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.WorkAreaCode = row["WorkAreaCode"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.PipelineCode = row["PipelineCode"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.Maxdate = row["maxdate"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.TotalJot = row["total_jot"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.FinishedJot = row["finished_total_jot"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.FinisedRate = row["finisedrate"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.TotalDI = row["total_din"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.FinishedDin = row["finished_total_din"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.FinishedDinRate = row["finisedrate_din"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.TotalFilm = row["total_film"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.PassFilm = row["pass_film"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.PassRate = row["passreate"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.TrustJot = row["trust_total_jot"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.TrustRate = row["trustrate"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.ExtJot = row["ext_jot"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.RepairJot = row["total_repairjot"].ToString();
							 | 
						|||
| 
								 | 
							
								                report.CutJot = row["cut_total_jot"].ToString();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                reportList.Add(report);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            return reportList;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 焊接工作量查询
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 焊接工作量查询
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectArea">项目区域</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId">项目Id</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.WorkloadItem> GetWeldWorkload(string projectArea, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string strSql = @"SELECT pro.ProjectCode, CAST(v.totalDin AS DECIMAL(9,2)) AS '预估',
							 | 
						|||
| 
								 | 
							
								                                     CAST((v.totalDin-ISNULL(v1.LastDin,0)) AS DECIMAL(9,2)) AS '完成', 
							 | 
						|||
| 
								 | 
							
								                                     CAST(ISNULL(v1.LastDin,0) AS DECIMAL(9,2)) AS '剩余',
							 | 
						|||
| 
								 | 
							
									                                 CAST(ISNULL(v2.LastWeekDin,0) AS DECIMAL(9,2)) AS '近一周'
							 | 
						|||
| 
								 | 
							
								                                FROM
							 | 
						|||
| 
								 | 
							
								                                   (SELECT ProjectId, ISNULL(SUM(ISNULL(Size,0)),0) AS totalDin 
							 | 
						|||
| 
								 | 
							
								                                      FROM dbo.Pipeline_WeldJoint GROUP BY ProjectId) v
							 | 
						|||
| 
								 | 
							
								                                    LEFT JOIN
							 | 
						|||
| 
								 | 
							
								                                   (SELECT ProjectId, ISNULL(SUM(ISNULL(Size,0)),0) AS LastDin 
							 | 
						|||
| 
								 | 
							
								                                    FROM dbo.Pipeline_WeldJoint 
							 | 
						|||
| 
								 | 
							
								                                    WHERE WeldingDailyId IS NULL GROUP BY ProjectId) v1 ON v1.ProjectId = v.ProjectId
							 | 
						|||
| 
								 | 
							
								                                   
							 | 
						|||
| 
								 | 
							
								                                    LEFT JOIN
							 | 
						|||
| 
								 | 
							
								                                   (SELECT jot.ProjectId, ISNULL(SUM(ISNULL(jot.Size,0)),0) AS LastWeekDin 
							 | 
						|||
| 
								 | 
							
								                                    FROM dbo.Pipeline_WeldJoint jot
							 | 
						|||
| 
								 | 
							
								                                    
							 | 
						|||
| 
								 | 
							
								                                    LEFT JOIN dbo.Pipeline_WeldingDaily report ON report.WeldingDailyId = jot.WeldingDailyId
							 | 
						|||
| 
								 | 
							
								                                    WHERE jot.WeldingDailyId IS NOT NULL AND report.WeldingDate<=GETDATE() AND report.WeldingDate>DATEADD(ww,-1,GETDATE())
							 | 
						|||
| 
								 | 
							
								                                    GROUP BY jot.ProjectId) v2 ON v2.ProjectId = v.ProjectId
							 | 
						|||
| 
								 | 
							
																	LEFT JOIN dbo.Base_Project pro ON pro.ProjectId = v.ProjectId
							 | 
						|||
| 
								 | 
							
								                                WHERE pro.ProjectArea=@projectArea ";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            List<SqlParameter> listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@ProjectArea", projectArea));
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(projectId))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql = strSql + " AND  v.ProjectId=@ProjectId";
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@ProjectId", projectId));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            
							 | 
						|||
| 
								 | 
							
								            SqlParameter[] parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            List<Model.WorkloadItem> workloadList = new List<Model.WorkloadItem>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            foreach (DataRow row in dt.Rows)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Model.WorkloadItem item = new Model.WorkloadItem();
							 | 
						|||
| 
								 | 
							
								                item.ProjectCode = row["ProjectCode"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.TotalNum = row["预估"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.FinishedNum = row["完成"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.RemainNum = row["剩余"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.LateOneWeekNum = row["近一周"].ToString();
							 | 
						|||
| 
								 | 
							
								                workloadList.Add(item);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return workloadList;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 拍片工作量查询
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 焊接工作量查询
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectArea">项目区域</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId">项目Id</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.WorkloadItem> GetWeldNdtFilm(string projectArea, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string strSql = @"SELECT pro.ProjectCode, ISNULL(v1.BatchTrustNum,0) AS '委托数',ISNULL(v2.NdtCheckNum,0) AS '拍片焊口',
							 | 
						|||
| 
								 | 
							
								                                     (ISNULL(v1.BatchTrustNum,0)-ISNULL(v2.NdtCheckNum,0)) AS '积压焊口' ,
							 | 
						|||
| 
								 | 
							
								                                     ISNULL(v3.LastWeekCheckNum,0) AS '近一周检测'
							 | 
						|||
| 
								 | 
							
								                                FROM 
							 | 
						|||
| 
								 | 
							
								                                   (SELECT trust.ProjectId, COUNT(d.TrustBatchItemId) AS BatchTrustNum 
							 | 
						|||
| 
								 | 
							
								                                    FROM dbo.Batch_BatchTrustItem  d
							 | 
						|||
| 
								 | 
							
								                                    LEFT JOIN dbo.Batch_BatchTrust trust ON  trust.TrustBatchId = d.TrustBatchId
							 | 
						|||
| 
								 | 
							
								                                    LEFT JOIN dbo.Base_DetectionType ndt ON ndt.DetectionTypeId = trust.DetectionTypeId
							 | 
						|||
| 
								 | 
							
								                                    WHERE ndt.SysType='射线检测' GROUP BY trust.ProjectId) v1
							 | 
						|||
| 
								 | 
							
								                               LEFT JOIN 
							 | 
						|||
| 
								 | 
							
								                                   (SELECT ndt.ProjectId,COUNT(ndtItme.NDEItemID) AS NdtCheckNum 
							 | 
						|||
| 
								 | 
							
								                                      FROM dbo.Batch_NDEItem ndtItme 
							 | 
						|||
| 
								 | 
							
								                                      LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItme.NDEID
							 | 
						|||
| 
								 | 
							
								                                      LEFT JOIN dbo.Base_DetectionType ndtType ON ndtType.DetectionTypeId = ndtItme.DetectionTypeId
							 | 
						|||
| 
								 | 
							
								                                    WHERE ndtType.SysType ='射线检测' AND SubmitDate IS NOT NULL
							 | 
						|||
| 
								 | 
							
								                                    GROUP BY ndt.ProjectId ) v2 ON v2.ProjectId = v1.ProjectId   
							 | 
						|||
| 
								 | 
							
								                              LEFT JOIN 
							 | 
						|||
| 
								 | 
							
								                                   (SELECT ndt.ProjectId,COUNT(ndtItme.NDEItemID) AS LastWeekCheckNum 
							 | 
						|||
| 
								 | 
							
								                                      FROM dbo.Batch_NDEItem ndtItme 
							 | 
						|||
| 
								 | 
							
								                                      LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItme.NDEID
							 | 
						|||
| 
								 | 
							
								                                      LEFT JOIN dbo.Base_DetectionType ndtType ON ndtType.DetectionTypeId = ndtItme.DetectionTypeId
							 | 
						|||
| 
								 | 
							
								                                     WHERE ndtType.SysType ='射线检测' AND SubmitDate IS NOT NULL
							 | 
						|||
| 
								 | 
							
								                                           AND ndtItme.SubmitDate<=GETDATE() AND ndtItme.SubmitDate>DATEADD(ww,-1,GETDATE())
							 | 
						|||
| 
								 | 
							
								                                          GROUP BY ndt.ProjectId ) v3 ON v3.ProjectId = v1.ProjectId
							 | 
						|||
| 
								 | 
							
															  LEFT JOIN dbo.Base_Project pro ON pro.ProjectId = v1.ProjectId		     
							 | 
						|||
| 
								 | 
							
								                              WHERE pro.ProjectArea=@projectArea  AND ISNULL(v1.BatchTrustNum,0)>0 ";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            List<SqlParameter> listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@ProjectArea", projectArea));
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(projectId))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql = strSql + " AND  v1.ProjectId=@ProjectId";
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@ProjectId", projectId));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            SqlParameter[] parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            List<Model.WorkloadItem> workloadList = new List<Model.WorkloadItem>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            foreach (DataRow row in dt.Rows)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Model.WorkloadItem item = new Model.WorkloadItem();
							 | 
						|||
| 
								 | 
							
								                item.ProjectCode = row["ProjectCode"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.TotalNum = row["委托数"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.FinishedNum = row["拍片焊口"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.RemainNum = row["积压焊口"].ToString();
							 | 
						|||
| 
								 | 
							
								                item.LateOneWeekNum = row["近一周检测"].ToString();
							 | 
						|||
| 
								 | 
							
								                workloadList.Add(item);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return workloadList;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |