bb6615ebb0
焊前检查需要同时覆盖下料、组对和防腐检查,并支持移动端查询与保存。 扩展焊前检查模型、服务和页面字段,补充检查结果、不合格原因、整改要求、 附件和防腐检查记录,便于按焊口和材料追溯检查过程。
263 lines
13 KiB
C#
263 lines
13 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace BLL
|
|
{
|
|
/// <summary>
|
|
/// 小程序焊前检查接口服务
|
|
/// </summary>
|
|
public static class APIPreWeldInspectionService
|
|
{
|
|
/// <summary>
|
|
/// 根据焊口ID获取焊前基础信息
|
|
/// </summary>
|
|
public static Model.PreWeldJointItem GetPreWeldJointByWeldJointId(string weldJointId)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var getweldJointPaintId = (from x in db.HJGL_WeldJoint
|
|
join y in db.HJGL_Pipeline on x.PipelineId equals y.PipelineId
|
|
where x.WeldJointId == weldJointId
|
|
select y.PaintId).FirstOrDefault();
|
|
var getweldJointMaterialCode = (from x in db.HJGL_PipeLineMat
|
|
where x.WeldJointId == weldJointId
|
|
select x.MaterialCode).FirstOrDefault();
|
|
var query = from x in db.HJGL_WeldJoint
|
|
join p in db.Base_Project on x.ProjectId equals p.ProjectId into projects
|
|
from p in projects.DefaultIfEmpty()
|
|
join pl in db.HJGL_Pipeline on x.PipelineId equals pl.PipelineId into pipelines
|
|
from pl in pipelines.DefaultIfEmpty()
|
|
join paint in db.Tw_PaintCodeDict on pl.PaintId equals paint.Id into paints
|
|
from paint in paints.DefaultIfEmpty()
|
|
where x.WeldJointId == weldJointId
|
|
select new Model.PreWeldJointItem
|
|
{
|
|
WeldJointId = x.WeldJointId,
|
|
WeldJointCode = x.WeldJointCode,
|
|
PipelineId = x.PipelineId,
|
|
PipelineCode = x.PipelineCode,
|
|
PaintId= pl.PaintId,
|
|
PaintCode = paint == null ? string.Empty : paint.PaintCode,
|
|
ProjectId = x.ProjectId,
|
|
ProjectName = p == null ? string.Empty : p.ProjectName,
|
|
preWeldMaterialItems = (from m in db.HJGL_PipeLineMat
|
|
join lib in db.HJGL_MaterialCodeLib on m.MaterialCode equals lib.MaterialCode into libs
|
|
from lib in libs.DefaultIfEmpty()
|
|
where m.WeldJointId == weldJointId
|
|
select new Model.PreWeldMaterialItem
|
|
{
|
|
MaterialCode = lib.MaterialCode,
|
|
MaterialName = lib.MaterialName,
|
|
MaterialSpec = lib.MaterialSpec,
|
|
MaterialMade = lib.MaterialMade,
|
|
MaterialDef = lib.MaterialDef,
|
|
MaterialUnit = lib.MaterialUnit,
|
|
HeatNo = lib.HeatNo,
|
|
BatchNo = lib.BatchNo,
|
|
}).ToList()
|
|
};
|
|
|
|
var item = query.FirstOrDefault();
|
|
if (item != null)
|
|
{
|
|
SetInspectionAttachUrl(db, item);
|
|
}
|
|
|
|
return item;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取焊口下料记录列表
|
|
/// </summary>
|
|
public static List<Model.PreWeldCuttingCheckItem> GetCuttingChecksByWeldJointId(string weldJointId)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var data = (from c in db.HJGL_PreWeldCuttingCheck
|
|
join w in db.HJGL_WeldJoint on c.WeldJointId equals w.WeldJointId
|
|
join p in db.Person_Persons on c.CheckPerson equals p.PersonId into persons
|
|
from p in persons.DefaultIfEmpty()
|
|
where c.WeldJointId == weldJointId
|
|
orderby c.CheckTime descending
|
|
select new Model.PreWeldCuttingCheckItem
|
|
{
|
|
CuttingCheckId = c.CuttingCheckId,
|
|
ProjectId = c.ProjectId,
|
|
WeldJointId = c.WeldJointId,
|
|
PipelineCode = w.PipelineCode,
|
|
WeldJointCode = w.WeldJointCode,
|
|
CuttingLength = c.CuttingLength,
|
|
GrooveForm = c.GrooveForm,
|
|
GrooveAngle = c.GrooveAngle,
|
|
IsMaterialCodeBatchNoAccurate = c.IsMaterialCodeBatchNoAccurate,
|
|
IsMaterialQuantityAccurate = c.IsMaterialQuantityAccurate,
|
|
IsQualified = c.IsQualified,
|
|
CheckPerson = c.CheckPerson,
|
|
CheckPersonName = p == null ? string.Empty : p.PersonName,
|
|
CheckTime = c.CheckTime,
|
|
CreateUser = c.CreateUser,
|
|
CreateTime = c.CreateTime,
|
|
AttachUrl1 = null,
|
|
CheckResult = c.CheckResult,
|
|
UnqualifiedReason = c.UnqualifiedReason,
|
|
RectifyRequirement = c.RectifyRequirement,
|
|
Remark = c.Remark
|
|
}).ToList();
|
|
foreach (var item in data)
|
|
{
|
|
item.AttachUrl1 = GetAttachUrl(db, Const.HJGL_PreWeldCuttingCheckMenuId, item.CuttingCheckId);
|
|
}
|
|
return data;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取焊口组对记录列表
|
|
/// </summary>
|
|
public static List<Model.PreWeldFitupCheckItem> GetFitupChecksByWeldJointId(string weldJointId)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
var data = (from f in db.HJGL_PreWeldFitupCheck
|
|
join w in db.HJGL_WeldJoint on f.WeldJointId equals w.WeldJointId
|
|
join g in db.Base_GrooveType on f.GrooveTypeId equals g.GrooveTypeId into grooveTypes
|
|
from g in grooveTypes.DefaultIfEmpty()
|
|
join p in db.Person_Persons on f.CheckPerson equals p.PersonId into persons
|
|
from p in persons.DefaultIfEmpty()
|
|
where f.WeldJointId == weldJointId
|
|
orderby f.CheckTime descending
|
|
select new Model.PreWeldFitupCheckItem
|
|
{
|
|
FitupCheckId = f.FitupCheckId,
|
|
ProjectId = f.ProjectId,
|
|
WeldJointId = f.WeldJointId,
|
|
PipelineCode = w.PipelineCode,
|
|
WeldJointCode = w.WeldJointCode,
|
|
GrooveTypeId = f.GrooveTypeId,
|
|
GrooveTypeCode = g == null ? string.Empty : g.GrooveTypeCode,
|
|
GrooveTypeName = g == null ? string.Empty : g.GrooveTypeName,
|
|
GrooveProcessType = f.GrooveProcessType,
|
|
GrooveAngle = f.GrooveAngle,
|
|
FitupGap = f.FitupGap,
|
|
Misalignment = f.Misalignment,
|
|
WeldReinforcement = f.WeldReinforcement,
|
|
WeldHeight = f.WeldHeight,
|
|
WeldWidth = f.WeldWidth,
|
|
SurfaceDefect = f.SurfaceDefect,
|
|
CheckPerson = f.CheckPerson,
|
|
CheckPersonName = p == null ? string.Empty : p.PersonName,
|
|
CheckTime = f.CheckTime,
|
|
CreateUser = f.CreateUser,
|
|
CreateTime = f.CreateTime,
|
|
AttachUrl1 = null,
|
|
CheckResult = f.CheckResult,
|
|
UnqualifiedReason = f.UnqualifiedReason,
|
|
RectifyRequirement = f.RectifyRequirement,
|
|
Remark = f.Remark
|
|
}).ToList();
|
|
foreach (var item in data)
|
|
{
|
|
item.AttachUrl1 = GetAttachUrl(db, Const.HJGL_PreWeldFitupCheckMenuId, item.FitupCheckId);
|
|
}
|
|
return data;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 按材料编码获取防腐检查记录
|
|
/// </summary>
|
|
public static List<Model.AntiCorrosionCheckRecordItem> GetAntiCorrosionChecksByMaterialCode(string materialCode, string projectId)
|
|
{
|
|
return PreWeldInspectionService.GetAntiCorrosionChecksByMaterialCode(materialCode, projectId);
|
|
}
|
|
/// <summary>
|
|
/// 按焊口获取防腐检查记录列表
|
|
/// </summary>
|
|
/// <param name="weldJointId"></param>
|
|
/// <returns></returns>
|
|
public static List<Model.AntiCorrosionCheckRecordItem> GetAntiCorrosionChecksByWeldJointId(string weldJointId)
|
|
{
|
|
return PreWeldInspectionService.GetAntiCorrosionChecksByWeldJointId(weldJointId);
|
|
}
|
|
/// <summary>
|
|
/// 保存下料检查
|
|
/// </summary>
|
|
public static string SaveCuttingCheck(Model.PreWeldCuttingCheckInput item)
|
|
{
|
|
return PreWeldInspectionService.SaveCuttingCheck(item);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存组对检查
|
|
/// </summary>
|
|
public static string SaveFitupCheck(Model.PreWeldFitupCheckInput item)
|
|
{
|
|
return PreWeldInspectionService.SaveFitupCheck(item);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存防腐检查
|
|
/// </summary>
|
|
public static string SaveAntiCorrosionCheck(Model.AntiCorrosionCheckRecordInput item)
|
|
{
|
|
return PreWeldInspectionService.SaveAntiCorrosionCheck(item);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取防腐代码字典
|
|
/// </summary>
|
|
public static List<Model.PaintCodeDictOutput> GetPaintCodeList()
|
|
{
|
|
return TwAntiCorrosionTrustService.GetPaintCodeList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 兼容旧接口:按焊口获取组对记录最新一条
|
|
/// </summary>
|
|
public static Model.HJGL_PreWeldFitupCheck GetFitupCheckByWeldJointId(string weldJointId)
|
|
{
|
|
return PreWeldInspectionService.GetFitupCheckByWeldJointId(weldJointId);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 回写下料、组对附件地址
|
|
/// </summary>
|
|
private static void SetInspectionAttachUrl(Model.SGGLDB db, Model.PreWeldJointItem item)
|
|
{
|
|
var cuttingCheckId = db.HJGL_PreWeldCuttingCheck
|
|
.Where(x => x.WeldJointId == item.WeldJointId)
|
|
.OrderByDescending(x => x.CheckTime)
|
|
.Select(x => x.CuttingCheckId)
|
|
.FirstOrDefault();
|
|
if (!string.IsNullOrEmpty(cuttingCheckId))
|
|
{
|
|
item.CuttingAttachUrl1 = GetAttachUrl(db, Const.HJGL_PreWeldCuttingCheckMenuId, cuttingCheckId);
|
|
}
|
|
|
|
var fitupCheckId = db.HJGL_PreWeldFitupCheck
|
|
.Where(x => x.WeldJointId == item.WeldJointId)
|
|
.OrderByDescending(x => x.CheckTime)
|
|
.Select(x => x.FitupCheckId)
|
|
.FirstOrDefault();
|
|
if (!string.IsNullOrEmpty(fitupCheckId))
|
|
{
|
|
item.FitupAttachUrl1 = GetAttachUrl(db, Const.HJGL_PreWeldFitupCheckMenuId, fitupCheckId);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据菜单和业务ID获取附件地址
|
|
/// </summary>
|
|
private static string GetAttachUrl(Model.SGGLDB db, string menuId, string toKeyId)
|
|
{
|
|
var attachUrl = db.AttachFile
|
|
.Where(x => x.MenuId == menuId && x.ToKeyId == toKeyId)
|
|
.Select(x => x.AttachUrl)
|
|
.FirstOrDefault();
|
|
return string.IsNullOrEmpty(attachUrl) ? attachUrl : attachUrl.Replace('\\', '/');
|
|
}
|
|
}
|
|
}
|