SGGL_SHJ/SGGL/BLL/API/HJGL/APIHJGLIndexService.cs

82 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Model;
namespace BLL
{
public class APIHJGLIndexService
{
public static Model.HJGLIndexItem GetJGLIndexItem(string projectid)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.HJGLIndexItem hJGLIndexItem = new Model.HJGLIndexItem();
var PipeRate1 = BLL.HJGL_WeldingReportService.GetPipeRate_finished(projectid);
var PipeRate2 = BLL.HJGL_WeldingReportService.GetPipeRate_unfinished(projectid);
var getCH_CheckItemList = (from x in Funs.DB.HJGL_Batch_NDEItem
join y in Funs.DB.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId
join z in Funs.DB.View_HJGL_WeldJoint on y.WeldJointId equals z.WeldJointId
join line in Funs.DB.HJGL_Pipeline on z.PipelineId equals line.PipelineId
where z.ProjectId == projectid
select new Model.sp_index_HJGLItem
{
ProjectId = line.ProjectId,
ID = x.NDEItemID,
UnitId = line.UnitId, ///重定义单位
UnitName = z.UnitName,
WorkAreaId = line.UnitId, /// 重定义区域
MaterialId = line.UnitWorkId, ///重定义材质
CHT_TotalFilm = x.TotalFilm,
CHT_PassFilm = x.PassFilm,
Specification = z.Specification,
WeldTypeCode = z.WeldTypeCode,
JointAttribute = z.JointAttribute,
UnitWorkName = z.UnitWorkName,
MaterialCode = z.MaterialCode
}).ToList();
var tb_type06 = getCH_CheckItemList.GroupBy(x => x.JointAttribute).Select(x => new {
JointAttribute = x.Key,
Current_pass_film = x.Sum(m => m.CHT_PassFilm) ?? 0,
Cht_totalfilm = x.Sum(m => m.CHT_TotalFilm) ?? 0
});
var GC_model = tb_type06.Where(x => x.JointAttribute == "预制口").FirstOrDefault();
var XC_model = tb_type06.Where(x => x.JointAttribute == "安装口").FirstOrDefault();
double PassRate1 = 0;
double PassRate2 = 0;
if (GC_model!=null &&GC_model.Cht_totalfilm>0)
{
PassRate1 = Math.Round((100 * GC_model.Current_pass_film * 1.0) / GC_model.Cht_totalfilm, 1);
}
if (XC_model!=null&& XC_model.Cht_totalfilm > 0)
{
PassRate2 = Math.Round((100 * XC_model.Current_pass_film * 1.0) / XC_model.Cht_totalfilm, 1);
}
hJGLIndexItem.GCFirstPassRate = PassRate1.ToString()+" %";
hJGLIndexItem.XCFirstPassRate = PassRate2.ToString()+" %";
hJGLIndexItem.GCProgress = BLL.HJGL_WeldingReportService.GetGCRate_finished(projectid).ToString() + "/" + HJGL_WeldingReportService.GetSumSize(projectid, 1).ToString() + " DIN";
hJGLIndexItem.XCProgress = BLL.HJGL_WeldingReportService.GetXCRate_finished(projectid).ToString() + "/" + HJGL_WeldingReportService.GetSumSize(projectid, 2).ToString() + " DIN";
if (PipeRate1 + PipeRate2 == 0)
{
hJGLIndexItem.PipePrefabricationRate = "0 %";
}
else
{
hJGLIndexItem.PipePrefabricationRate = Math.Floor(Math.Round(decimal.Parse((PipeRate1 / (PipeRate1 + PipeRate2)).ToString("0.000")), 2) * 100).ToString()+" %";
}
hJGLIndexItem.GCWelderEfficacy = HJGL_WeldingReportService.GetWelderEfficacy_GC(projectid).ToString()+" DIN/天";
hJGLIndexItem.XCWelderEfficacy = HJGL_WeldingReportService.GetWelderEfficacy_XC(projectid).ToString()+" DIN/天";
return hJGLIndexItem;
}
}
}
}