82 lines
4.5 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|