diff --git a/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx b/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx index e8605ac7..f40f9d63 100644 --- a/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx +++ b/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx @@ -153,11 +153,9 @@
-
施工分包商
+
施工分包商
-
安装单位工程
-
-
建筑单位工程
+
单位工程
专业
@@ -193,9 +191,7 @@
-
安装单位工程
-
-
建筑单位工程
+
单位工程
@@ -296,7 +292,7 @@ var one2 =<%=One2 %> var one3 =<%=One3 %> category_One('one1', "质量验收一次合格率", one1, one1 + "%") - category_One('one2', "施工资料同步率", one2, one2 + "%") + category_One('one2', "焊接一次拍片合格率", one2, one2 + "%") category_One('one3', "质量问题整改完成率", one3, one3 + "%") @@ -892,6 +907,15 @@ stack: '总量', //data: [3, 5, 8, 10, 6, 4, 5, 9, 12], data: two.series[0].data, + label: { //柱体上显示数值 + show: true,//开启显示 + position: ['0%', '50%'],//在上方显示 + textStyle: {//数值样式 + fontSize: '20px', + color: '#fff' + }, + formatter: '{c}', + }, itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } }, { @@ -900,6 +924,15 @@ stack: '总量', //data: [2, 7, 5, 9, 12, 9, 2, 8, 10], data: two.series[1].data, + label: { //柱体上显示数值 + show: true,//开启显示 + position: ['0%', '50%'],//在上方显示 + textStyle: {//数值样式 + fontSize: '20px', + color: '#fff' + }, + formatter: '{c}', + }, itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } } ]; @@ -914,6 +947,15 @@ stack: '总量', //data: [13, 5, 18, 10, 6, 4, 5, 9, 22], data: two2.series[0].data, + label: { //柱体上显示数值 + show: true,//开启显示 + position: ['0%', '50%'],//在上方显示 + textStyle: {//数值样式 + fontSize: '20px', + color: '#fff' + }, + formatter: '{c}', + }, itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } }, { @@ -922,35 +964,21 @@ stack: '总量', //data: [2, 7, 15, 9, 12, 29, 12, 18, 10], data: two2.series[1].data, + label: { //柱体上显示数值 + show: true,//开启显示 + position: ['0%', '50%'],//在上方显示 + textStyle: {//数值样式 + fontSize: '20px', + color: '#fff' + }, + formatter: '{c}', + }, itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } } ]; num = two2.xFontNum; } else if (index == 4) { - //xArr = ["专业1", "专业2", "专业3", "专业4", "专业5", "专业6", "专业7", "专业8", "专业9"] - xArr = two4.categories - data = [ - { - name: '未整改', - type: 'bar', - stack: '总量', - //data: [23, 25, 18, 10, 16, 4, 5, 29, 2], - data: two4.series[0].data, - itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } - }, - { - name: '已整改', - type: 'bar', - stack: '总量', - //data: [2, 27, 15, 9, 12, 29, 32, 18, 1], - data: two4.series[1].data, - itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } - } - ]; - num = two4.xFontNum; - } - else if (index == 6) { //xArr = ["专业1", "专业2", "专业3", "专业4", "专业5", "专业6", "专业7", "专业8", "专业9"] xArr = two3.categories data = [ @@ -960,6 +988,15 @@ stack: '总量', //data: [23, 25, 18, 10, 16, 4, 5, 29, 2], data: two3.series[0].data, + label: { //柱体上显示数值 + show: true,//开启显示 + position: ['0%', '50%'],//在上方显示 + textStyle: {//数值样式 + fontSize: '20px', + color: '#fff' + }, + formatter: '{c}', + }, itemStyle: { normal: { color: 'rgba(162,63,21, 1)' } } }, { @@ -968,6 +1005,15 @@ stack: '总量', //data: [2, 27, 15, 9, 12, 29, 32, 18, 1], data: two3.series[1].data, + label: { //柱体上显示数值 + show: true,//开启显示 + position: ['0%', '50%'],//在上方显示 + textStyle: {//数值样式 + fontSize: '20px', + color: '#fff' + }, + formatter: '{c}', + }, itemStyle: { normal: { color: 'rgba(206,143,135,1)' } } } ]; diff --git a/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx.cs b/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx.cs index c9ea9bf5..d781c6c9 100644 --- a/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx.cs +++ b/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx.cs @@ -38,20 +38,17 @@ namespace FineUIPro.Web } #endregion - #region 项目施工资料同步率 + #region 焊接一次拍片合格率 protected string One2 { get { - List totalCheckDetailDataOKLists = SpotCheckDetailService.GetAllDataOkSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - List totalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(CurrUser.LoginProjectId, DateTime.Now); - totalCheckDetailOKLists = totalCheckDetailOKLists.Where(x => x.IsShow == true).ToList(); //需要上传资料的IsShow为true double result = 0; - if (totalCheckDetailDataOKLists.Count > 0 && totalCheckDetailOKLists.Count > 0) + var ndtList = (from x in Funs.DB.ProcessControl_NondestructiveTest_New where x.ProfessionalName == "工艺管道" && x.ProjectId == this.CurrUser.LoginProjectId orderby x.CreateDate descending select x).FirstOrDefault(); + + if (ndtList != null && !string.IsNullOrEmpty(ndtList.TotalRate)) { - var a = Convert.ToDouble(totalCheckDetailDataOKLists.Count); - var b = Convert.ToDouble(totalCheckDetailOKLists.Count); - result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); + result = Convert.ToDouble(ndtList.TotalRate) / 100; } return JsonConvert.SerializeObject(result); } @@ -83,63 +80,32 @@ namespace FineUIPro.Web { var db = new Model.SGGLDB(Funs.ConnString); Model.Num num = new Model.Num(); - var controlItemAndCycles = (from x in db.WBS_ControlItemAndCycle - where x.ProjectId == CurrUser.LoginProjectId && x.IsApprove == true - orderby x.ControlItemAndCycleCode - select x).ToList(); - var oKSpotCheckDetails = (from x in db.Check_SpotCheckDetail - join y in db.Check_SpotCheck - on x.SpotCheckCode equals y.SpotCheckCode - where x.IsOK == true && y.ProjectId == CurrUser.LoginProjectId - select x).ToList(); + var controlItemAndCycles = from x in db.WBS_BreakdownProject + where x.ProjectId == CurrUser.LoginProjectId && x.IsSelected == true + orderby x.BreakdownCode + select x; + var oKSpotCheckDetails = (from x in db.ProcessControl_InspectionManagementDetail + join y in db.ProcessControl_InspectionManagement + on x.InspectionId equals y.InspectionId + join z in db.WBS_BreakdownProject + on x.ControlPointType equals z.BreakdownProjectId + where y.IsOnceQualified == true && y.ProjectId == CurrUser.LoginProjectId + select new { x.ControlPointType, z.Class }).Distinct().ToList(); //A类 - var Alist = controlItemAndCycles.Where(x => x.ControlPoint.Contains("A")); - int a = 0; - foreach (var item in Alist) - { - if (item.CheckNum != 0) //检查次数为0表示一直检查 - { - List details = oKSpotCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId).ToList(); - if (details.Count == item.CheckNum) //检查次数已达到最大值 - { - a++; - } - } - } + var Alist = controlItemAndCycles.Where(x => x.Class.Contains("A")); + int a = oKSpotCheckDetails.Count(x => x.Class.Contains("A")); num.num2 = a; num.num3 = Alist.Count(); num.num1 = num.num3 - num.num2; //B类 - var Blist = controlItemAndCycles.Where(x => x.ControlPoint.Contains("B")); - int b = 0; - foreach (var item in Blist) - { - if (item.CheckNum != 0) //检查次数为0表示一直检查 - { - List details = oKSpotCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId).ToList(); - if (details.Count == item.CheckNum) //检查次数已达到最大值 - { - b++; - } - } - } + var Blist = controlItemAndCycles.Where(x => x.Class.Contains("B")); + int b = oKSpotCheckDetails.Count(x => x.Class.Contains("B")); num.num5 = b; num.num6 = Blist.Count(); num.num4 = num.num6 - num.num5; //C类 - var Clist = controlItemAndCycles.Where(x => x.ControlPoint.Contains("C")); - int c = 0; - foreach (var item in Clist) - { - if (item.CheckNum != 0) //检查次数为0表示一直检查 - { - List details = oKSpotCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId).ToList(); - if (details.Count == item.CheckNum) //检查次数已达到最大值 - { - c++; - } - } - } + var Clist = controlItemAndCycles.Where(x => x.Class.Contains("C")); + int c = oKSpotCheckDetails.Count(x => x.Class.Contains("C")); num.num8 = c; num.num9 = Clist.Count(); num.num7 = num.num9 - num.num8; @@ -159,7 +125,9 @@ namespace FineUIPro.Web businessColumn.title = "质量问题统计"; businessColumn.xFontNum = 8; var units = BLL.ProjectUnitService.GetProjectUnitListByProjectIdUnitType(CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); - var checks = JointCheckDetailService.GetTotalJointCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + var checks = from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.ProjectId == CurrUser.LoginProjectId + select x; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); @@ -169,7 +137,7 @@ namespace FineUIPro.Web { listCategories.Add(BLL.UnitService.GetShortUnitNameByUnitId(unit.UnitId)); var unitChecks = checks.Where(x => x.UnitId == unit.UnitId); - okNum = unitChecks.Where(x => x.OK == 1).Count(); + okNum = unitChecks.Where(x => x.State == "7").Count(); listdata.Add(unitChecks.Count() - okNum); listdata2.Add(okNum); } @@ -193,8 +161,9 @@ namespace FineUIPro.Web businessColumn.title = "质量问题统计"; businessColumn.xFontNum = 5; var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); - unitWorks = unitWorks.Where(x => x.ProjectType == "2").ToList(); - var checks = JointCheckDetailService.GetTotalJointCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + var checks = from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.ProjectId == CurrUser.LoginProjectId + select x; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); @@ -204,7 +173,7 @@ namespace FineUIPro.Web { listCategories.Add(unitWork.UnitWorkName); var unitChecks = checks.Where(x => x.UnitWorkId == unitWork.UnitWorkId); - okNum = unitChecks.Where(x => x.OK == 1).Count(); + okNum = unitChecks.Where(x => x.State == "7").Count(); listdata.Add(unitChecks.Count() - okNum); listdata2.Add(okNum); } @@ -228,7 +197,9 @@ namespace FineUIPro.Web businessColumn.title = "质量问题统计"; businessColumn.xFontNum = 5; var cns = BLL.CNProfessionalService.GetList(); - var checks = JointCheckDetailService.GetTotalJointCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + var checks = from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.ProjectId == CurrUser.LoginProjectId + select x; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); @@ -238,7 +209,7 @@ namespace FineUIPro.Web { listCategories.Add(cn.ProfessionalName); var unitChecks = checks.Where(x => x.CNProfessionalCode == cn.CNProfessionalId); - okNum = unitChecks.Where(x => x.OK == 1).Count(); + okNum = unitChecks.Where(x => x.State == "7").Count(); listdata.Add(unitChecks.Count() - okNum); listdata2.Add(okNum); } @@ -263,7 +234,9 @@ namespace FineUIPro.Web businessColumn.xFontNum = 5; var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); unitWorks = unitWorks.Where(x => x.ProjectType == "1").ToList(); - var checks = JointCheckDetailService.GetTotalJointCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + var checks = from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.ProjectId == CurrUser.LoginProjectId + select x; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); @@ -273,7 +246,7 @@ namespace FineUIPro.Web { listCategories.Add(unitWork.UnitWorkName); var unitChecks = checks.Where(x => x.UnitWorkId == unitWork.UnitWorkId); - okNum = unitChecks.Where(x => x.OK == 1).Count(); + okNum = unitChecks.Where(x => x.State == "7").Count(); listdata.Add(unitChecks.Count() - okNum); listdata2.Add(okNum); } @@ -297,10 +270,14 @@ namespace FineUIPro.Web Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "质量一次合格率"; + Model.SGGLDB db = Funs.DB; var units = BLL.ProjectUnitService.GetProjectUnitListByProjectIdUnitType(CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); - List TotalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(CurrUser.LoginProjectId, DateTime.Now); - List TotalCheckDetailLists = SpotCheckDetailService.GetTotalAllSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - List totalCheckDetailDataOKLists = SpotCheckDetailService.GetAllDataOkSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + List TotalCheckDetailOKLists = (from x in db.ProcessControl_InspectionManagement + where x.ProjectId == this.CurrUser.LoginProjectId && x.IsOnceQualified == true + select x).ToList(); + List TotalCheckDetailLists = (from x in db.ProcessControl_InspectionManagement + where x.ProjectId == this.CurrUser.LoginProjectId + select x).ToList(); Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); @@ -317,13 +294,10 @@ namespace FineUIPro.Web var b = Convert.ToDouble(totalChecks.Count); result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); } - var dataOkChecks = totalCheckDetailDataOKLists.Where(x => x.UnitId == unit.UnitId).ToList(); - okChecks = okChecks.Where(x => x.IsShow == true).ToList(); //需要上传资料的IsShow为true - if (dataOkChecks.Count > 0 && okChecks.Count > 0) + var ndtList = (from x in db.ProcessControl_NondestructiveTest_New where x.ProfessionalName == "工艺管道" && x.UnitId == unit.UnitId && x.ProjectId == this.CurrUser.LoginProjectId orderby x.CreateDate descending select x).FirstOrDefault(); + if (ndtList != null && !string.IsNullOrEmpty(ndtList.TotalRate)) { - var a = Convert.ToDouble(dataOkChecks.Count); - var b = Convert.ToDouble(okChecks.Count); - result2 = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); + result2 = Convert.ToDouble(ndtList.TotalRate); } listdata.Add(result); listdata2.Add(result2); @@ -349,9 +323,13 @@ namespace FineUIPro.Web List listCategories = new List(); businessColumn.title = "质量一次合格率"; var cns = BLL.CNProfessionalService.GetList(); - List TotalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(CurrUser.LoginProjectId, DateTime.Now); - List TotalCheckDetailLists = SpotCheckDetailService.GetTotalAllSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - List totalCheckDetailDataOKLists = SpotCheckDetailService.GetAllDataOkSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + Model.SGGLDB db = Funs.DB; + List TotalCheckDetailOKLists = (from x in db.ProcessControl_InspectionManagement + where x.ProjectId == this.CurrUser.LoginProjectId && x.IsOnceQualified == true + select x).ToList(); + List TotalCheckDetailLists = (from x in db.ProcessControl_InspectionManagement + where x.ProjectId == this.CurrUser.LoginProjectId + select x).ToList(); Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); @@ -360,21 +338,21 @@ namespace FineUIPro.Web foreach (var cn in cns) { listCategories.Add(cn.ProfessionalName); - var okChecks = TotalCheckDetailOKLists.Where(x => x.CNProfessionalCode == cn.CNProfessionalId).ToList(); - var totalChecks = TotalCheckDetailLists.Where(x => x.CNProfessionalCode == cn.CNProfessionalId).ToList(); + var okChecks = TotalCheckDetailOKLists.Where(x => x.CNProfessionalId == cn.CNProfessionalId).ToList(); + var totalChecks = TotalCheckDetailLists.Where(x => x.CNProfessionalId == cn.CNProfessionalId).ToList(); if (okChecks.Count > 0 && totalChecks.Count > 0) { var a = Convert.ToDouble(okChecks.Count); var b = Convert.ToDouble(totalChecks.Count); result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); } - var dataOkChecks = totalCheckDetailDataOKLists.Where(x => x.CNProfessionalCode == cn.CNProfessionalId).ToList(); - okChecks = okChecks.Where(x => x.IsShow == true).ToList(); //需要上传资料的IsShow为true - if (dataOkChecks.Count > 0 && okChecks.Count > 0) + if (cn.ProfessionalName.Contains("管道")) { - var a = Convert.ToDouble(dataOkChecks.Count); - var b = Convert.ToDouble(okChecks.Count); - result2 = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); + var ndtList = (from x in db.ProcessControl_NondestructiveTest_New where x.ProfessionalName == "工艺管道" && x.ProjectId == this.CurrUser.LoginProjectId orderby x.CreateDate descending select x).FirstOrDefault(); + if (ndtList != null && !string.IsNullOrEmpty(ndtList.TotalRate)) + { + result2 = Convert.ToDouble(ndtList.TotalRate); + } } listdata.Add(result); listdata2.Add(result2); @@ -399,44 +377,33 @@ namespace FineUIPro.Web Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "质量一次合格率"; + Model.SGGLDB db = Funs.DB; var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); - unitWorks = unitWorks.Where(x => x.ProjectType == "2").ToList(); - List TotalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(CurrUser.LoginProjectId, DateTime.Now); - List TotalCheckDetailLists = SpotCheckDetailService.GetTotalAllSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - List totalCheckDetailDataOKLists = SpotCheckDetailService.GetAllDataOkSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + var TotalCheckDetailOKLists = from x in db.ProcessControl_InspectionManagementDetail + join y in db.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId + join z in db.WBS_BreakdownProject on x.ControlPointType equals z.BreakdownProjectId + where y.ProjectId == this.CurrUser.LoginProjectId + select new { z.UnitWorkId, y.IsOnceQualified }; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); - List listdata2 = new List(); - double result = 0, result2 = 0; + double result = 0; foreach (var unitWork in unitWorks) { listCategories.Add(unitWork.UnitWorkName); - var okChecks = TotalCheckDetailOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - var totalChecks = TotalCheckDetailLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); + var okChecks = TotalCheckDetailOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId && x.IsOnceQualified == true).ToList(); + var totalChecks = TotalCheckDetailOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); if (okChecks.Count > 0 && totalChecks.Count > 0) { var a = Convert.ToDouble(okChecks.Count); var b = Convert.ToDouble(totalChecks.Count); result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); } - var dataOkChecks = totalCheckDetailDataOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - okChecks = okChecks.Where(x => x.IsShow == true).ToList(); //需要上传资料的IsShow为true - if (dataOkChecks.Count > 0 && okChecks.Count > 0) - { - var a = Convert.ToDouble(dataOkChecks.Count); - var b = Convert.ToDouble(okChecks.Count); - result2 = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); - } listdata.Add(result); - listdata2.Add(result2); result = 0; - result2 = 0; } s.data = listdata; - s2.data = listdata2; series.Add(s); - series.Add(s2); businessColumn.categories = listCategories; businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn);