using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Data.SqlClient; namespace BLL { public static class APIReportQueryService { #region 根据焊工号获取焊工业绩 /// /// 根据焊工号获取焊工业绩 /// /// /// /// 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 根据条件获取管线综合信息 /// /// 根据条件获取管线综合信息 /// /// 项目 /// 区域 /// 管线号 /// public static List GetPipeLineInfo(string projectId, string workAreaId, string pipelineCode) { List listStr = new List(); 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 reportList = new List(); 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 焊接工作量查询 /// /// 焊接工作量查询 /// /// 项目区域 /// 项目Id /// public static List 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 listStr = new List(); 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 workloadList = new List(); 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 拍片工作量查询 /// /// 焊接工作量查询 /// /// 项目区域 /// 项目Id /// public static List 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 listStr = new List(); 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 workloadList = new List(); 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 } }