feat(hjgl): 完善焊前检查和防腐检查流程

焊前检查需要同时覆盖下料、组对和防腐检查,并支持移动端查询与保存。
扩展焊前检查模型、服务和页面字段,补充检查结果、不合格原因、整改要求、
附件和防腐检查记录,便于按焊口和材料追溯检查过程。
This commit is contained in:
2026-07-07 10:40:21 +08:00
parent 02b524b895
commit bb6615ebb0
57 changed files with 5035 additions and 2057 deletions
+2
View File
@@ -36,6 +36,8 @@ namespace BLL
newItem.Telephone = getUser.Telephone;
newItem.IsOffice = getUser.IsOffice;
newItem.SignatureUrl = getUser.SignatureUrl;
newItem.WorkPostId= getUser.WorkPostId;
newItem.WorkPostName = WorkPostService.getWorkPostNameById(getUser.WorkPostId);
if (!string.IsNullOrEmpty(getUser.Account))
{
newItem.UserType = (getUser.PersonId == Const.sedinId ? "2" : "1");
+189 -167
View File
@@ -1,28 +1,35 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
/// <summary>
/// 小程序焊前抽检接口服务
/// 小程序焊前检查接口服务
/// </summary>
public static class APIPreWeldInspectionService
{
/// <summary>
/// 根据焊口ID获取焊前抽检基础信息
/// 根据焊口ID获取焊前基础信息
/// </summary>
/// <param name="weldJointId">焊口ID</param>
/// <returns>焊口基础信息</returns>
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 g in db.Base_GrooveType on x.GrooveTypeId equals g.GrooveTypeId into grooveTypes
from g in grooveTypes.DefaultIfEmpty()
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
{
@@ -30,15 +37,25 @@ namespace BLL
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,
GrooveTypeId = x.GrooveTypeId,
GrooveTypeCode = g == null ? string.Empty : g.GrooveTypeCode,
GrooveTypeName = g == null ? string.Empty : g.GrooveTypeName,
GrooveProcessType = x.GrooveProcessType,
GrooveAngle = x.GrooveAngle,
FitupGap = x.FitupGap,
Misalignment = x.Misalignment
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();
@@ -52,14 +69,166 @@ namespace BLL
}
/// <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>
/// <param name="db">数据库上下文</param>
/// <param name="item">焊前抽检基础信息</param>
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))
@@ -69,6 +238,7 @@ namespace BLL
var fitupCheckId = db.HJGL_PreWeldFitupCheck
.Where(x => x.WeldJointId == item.WeldJointId)
.OrderByDescending(x => x.CheckTime)
.Select(x => x.FitupCheckId)
.FirstOrDefault();
if (!string.IsNullOrEmpty(fitupCheckId))
@@ -78,12 +248,8 @@ namespace BLL
}
/// <summary>
/// 按菜单和业务ID获取附件路径
/// 根据菜单和业务ID获取附件地址
/// </summary>
/// <param name="db">数据库上下文</param>
/// <param name="menuId">菜单ID</param>
/// <param name="toKeyId">业务ID</param>
/// <returns>附件路径</returns>
private static string GetAttachUrl(Model.SGGLDB db, string menuId, string toKeyId)
{
var attachUrl = db.AttachFile
@@ -92,149 +258,5 @@ namespace BLL
.FirstOrDefault();
return string.IsNullOrEmpty(attachUrl) ? attachUrl : attachUrl.Replace('\\', '/');
}
/// <summary>
/// 保存下料抽检,已存在同一焊口记录时更新原记录
/// </summary>
/// <param name="item">下料抽检参数</param>
public static void SaveCuttingCheck(Model.PreWeldCuttingCheckItem item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
if (string.IsNullOrEmpty(item.WeldJointId))
{
throw new ArgumentException("焊口ID不能为空。");
}
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var weldJoint = db.HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == item.WeldJointId);
if (weldJoint == null)
{
throw new ArgumentException("未找到对应焊口。");
}
var check = db.HJGL_PreWeldCuttingCheck.FirstOrDefault(x => x.WeldJointId == item.WeldJointId);
if (check == null)
{
check = new Model.HJGL_PreWeldCuttingCheck
{
CuttingCheckId = Guid.NewGuid().ToString(),
WeldJointId = item.WeldJointId,
ProjectId = string.IsNullOrEmpty(item.ProjectId) ? weldJoint.ProjectId : item.ProjectId,
CreateUser = item.CreateUser ?? item.CheckPerson,
CreateTime = DateTime.Now
};
db.HJGL_PreWeldCuttingCheck.InsertOnSubmit(check);
}
check.ProjectId = string.IsNullOrEmpty(item.ProjectId) ? weldJoint.ProjectId : item.ProjectId;
check.IsMaterialCodeBatchNoAccurate = item.IsMaterialCodeBatchNoAccurate;
check.IsMaterialQuantityAccurate = item.IsMaterialQuantityAccurate;
// 下料抽检合格规则:材料编码及炉批号、材料数量两个检查项均准确才合格。
check.IsQualified = item.IsMaterialCodeBatchNoAccurate && item.IsMaterialQuantityAccurate;
check.CheckPerson = item.CheckPerson;
check.CheckTime = item.CheckTime ?? DateTime.Now;
check.Remark = item.Remark;
db.SubmitChanges();
SaveInspectionAttachUrl(item.AttachUrl1, Const.HJGL_PreWeldCuttingCheckMenuId, check.CuttingCheckId);
}
}
/// <summary>
/// 保存组对抽检,已存在同一焊口记录时更新原记录并回写焊口主表
/// </summary>
/// <param name="item">组对抽检参数</param>
public static void SaveFitupCheck(Model.PreWeldFitupCheckItem item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
if (string.IsNullOrEmpty(item.WeldJointId))
{
throw new ArgumentException("焊口ID不能为空。");
}
if (string.IsNullOrEmpty(item.GrooveTypeId))
{
throw new ArgumentException("坡口类型不能为空。");
}
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var weldJoint = db.HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == item.WeldJointId);
if (weldJoint == null)
{
throw new ArgumentException("未找到对应焊口。");
}
if (!db.Base_GrooveType.Any(x => x.GrooveTypeId == item.GrooveTypeId))
{
throw new ArgumentException("坡口类型不存在。");
}
var check = db.HJGL_PreWeldFitupCheck.FirstOrDefault(x => x.WeldJointId == item.WeldJointId);
if (check == null)
{
check = new Model.HJGL_PreWeldFitupCheck
{
FitupCheckId = Guid.NewGuid().ToString(),
WeldJointId = item.WeldJointId,
ProjectId = string.IsNullOrEmpty(item.ProjectId) ? weldJoint.ProjectId : item.ProjectId,
CreateUser = item.CreateUser ?? item.CheckPerson,
CreateTime = DateTime.Now
};
db.HJGL_PreWeldFitupCheck.InsertOnSubmit(check);
}
check.ProjectId = string.IsNullOrEmpty(item.ProjectId) ? weldJoint.ProjectId : item.ProjectId;
check.GrooveTypeId = item.GrooveTypeId;
check.GrooveProcessType = item.GrooveProcessType;
check.GrooveAngle = item.GrooveAngle;
check.FitupGap = item.FitupGap;
check.Misalignment = item.Misalignment;
check.CheckPerson = item.CheckPerson;
check.CheckTime = item.CheckTime ?? DateTime.Now;
check.Remark = item.Remark;
// 组对抽检字段需同步回写焊口主表,供焊口台账和后续业务复用。
weldJoint.GrooveTypeId = item.GrooveTypeId;
weldJoint.GrooveProcessType = item.GrooveProcessType;
weldJoint.GrooveAngle = item.GrooveAngle;
weldJoint.FitupGap = item.FitupGap;
weldJoint.Misalignment = item.Misalignment;
db.SubmitChanges();
SaveInspectionAttachUrl(item.AttachUrl1, Const.HJGL_PreWeldFitupCheckMenuId, check.FitupCheckId);
}
}
/// <summary>
/// 保存焊前抽检附件,空附件时清理原附件。
/// </summary>
/// <param name="attachUrl">附件路径</param>
/// <param name="menuId">菜单ID</param>
/// <param name="dataId">业务数据ID</param>
private static void SaveInspectionAttachUrl(string attachUrl, string menuId, string dataId)
{
// AttachUrl1 为 null 表示旧调用方未传附件参数,避免误删已有附件;空字符串表示明确清空附件。
if (attachUrl == null)
{
return;
}
if (!string.IsNullOrEmpty(attachUrl))
{
UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(attachUrl, 10, null), attachUrl, menuId, dataId);
}
else
{
CommonService.DeleteAttachFileById(menuId, dataId);
}
}
}
}
@@ -57,7 +57,26 @@ namespace BLL
return q.ToList();
}
public static List<Tw_InputDetailBarCodeOutput> GetListData(string materialCode)
{
var q = from mat in Funs.DB.HJGL_MaterialCodeLib
where
mat.MaterialCode == materialCode
select new Tw_InputDetailBarCodeOutput
{
MaterialCode = mat.MaterialCode,
Code = mat.Code,
HeatNo = mat.HeatNo,
BatchNo = mat.BatchNo,
MaterialName = mat.MaterialName,
MaterialDef = mat.MaterialDef,
MaterialSpec = mat.MaterialSpec,
MaterialUnit = mat.MaterialUnit,
BarCode = mat.MaterialCode
};
return q.ToList();
}
public static void AddByInputDetail(Tw_InputMaster inputMaster, Tw_InputDetail inputDetail)
{
if (inputMaster == null || inputDetail == null)
+5
View File
@@ -2949,6 +2949,11 @@ namespace BLL
/// 组对抽检列表台账
/// </summary>
public const string HJGL_PreWeldFitupCheckMenuId = "D1B5A8B7-5D2A-4C51-9B7E-6A2F15B7F003";
/// <summary>
/// 防腐检查记录
/// </summary>
public const string Tw_AntiCorrosionCheckRecordMenuId = "7B62483A-4B6F-4A8C-9C61-5D0E2B4B7C31";
#endregion
#region 预制设计
@@ -61,6 +61,22 @@ namespace BLL
}
}
/// <summary>
/// 维护管线材料导入编码,只更新材料编码字段,避免影响材料主编码和焊口关联。
/// </summary>
/// <param name="pipelineMatId">管线材料ID</param>
/// <param name="materialCode">材料编码</param>
public static void UpdateMaterialCode2(string pipelineMatId, string materialCode)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_PipeLineMat pipeLineMat = db.HJGL_PipeLineMat.FirstOrDefault(e => e.PipeLineMatId == pipelineMatId);
if (pipeLineMat != null)
{
pipeLineMat.MaterialCode2 = materialCode;
db.SubmitChanges();
}
}
/// <summary>
/// 根据材料匹配结果反写材料主编码
/// </summary>
@@ -94,6 +110,40 @@ namespace BLL
return count;
}
/// <summary>
/// 按管线材料ID清除已反写的材料主编码,保留导入材料编码。
/// </summary>
/// <param name="pipeLineMatIds">管线材料ID列表。</param>
/// <returns>清除数量。</returns>
public static int ClearMaterialCodeByPipeLineMatIds(IEnumerable<string> pipeLineMatIds)
{
var idList = pipeLineMatIds == null
? new List<string>()
: pipeLineMatIds.Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
if (!idList.Any())
{
return 0;
}
Model.SGGLDB db = Funs.DB;
int count = 0;
var pipeLineMats = db.HJGL_PipeLineMat
.Where(e => idList.Contains(e.PipeLineMatId) && e.MaterialCode != null && e.MaterialCode != "")
.ToList();
foreach (var item in pipeLineMats)
{
item.MaterialCode = null;
count++;
}
if (count > 0)
{
db.SubmitChanges();
}
return count;
}
/// <summary>
/// 根据unitworkid删除焊口
/// </summary>
@@ -616,6 +616,7 @@ namespace BLL
newPipeline.PCMedium = pipeline.PCMedium;
newPipeline.PCtype = pipeline.PCtype;
newPipeline.MaterialId = pipeline.MaterialId;
newPipeline.PaintId = pipeline.PaintId;
newPipeline.State = pipeline.State;
newPipeline.FlowingSection = pipeline.FlowingSection;
db.HJGL_Pipeline.InsertOnSubmit(newPipeline);
@@ -656,6 +657,7 @@ namespace BLL
newPipeline.PCtype = pipeline.PCtype;
newPipeline.Remark = pipeline.Remark;
newPipeline.MaterialId = pipeline.MaterialId;
newPipeline.PaintId = pipeline.PaintId;
newPipeline.IsFinished = pipeline.IsFinished;
newPipeline.PlanStartDate = pipeline.PlanStartDate;
newPipeline.PlanEndDate = pipeline.PlanEndDate;
@@ -1,16 +1,16 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
/// <summary>
/// 焊前抽检台账服务
/// 焊前检查台账服务
/// </summary>
public static class PreWeldInspectionService
{
/// <summary>
/// 获取下料抽检台账
/// 获取下料检查台账
/// </summary>
public static Tuple<List<Model.PreWeldCuttingCheckItem>, int> GetCuttingCheckList(string projectId, string pipelineCode, string weldJointCode, int pageIndex, int pageSize)
{
@@ -48,6 +48,9 @@ namespace BLL
WeldJointId = x.c.WeldJointId,
PipelineCode = x.w.PipelineCode,
WeldJointCode = x.w.WeldJointCode,
CuttingLength = x.c.CuttingLength,
GrooveForm = x.c.GrooveForm,
GrooveAngle = x.c.GrooveAngle,
IsMaterialCodeBatchNoAccurate = x.c.IsMaterialCodeBatchNoAccurate,
IsMaterialQuantityAccurate = x.c.IsMaterialQuantityAccurate,
IsQualified = x.c.IsQualified,
@@ -56,16 +59,23 @@ namespace BLL
CheckTime = x.c.CheckTime,
CreateUser = x.c.CreateUser,
CreateTime = x.c.CreateTime,
CheckResult = x.c.CheckResult,
UnqualifiedReason = x.c.UnqualifiedReason,
RectifyRequirement = x.c.RectifyRequirement,
Remark = x.c.Remark
})
.ToList();
foreach (var item in data)
{
item.AttachUrl1 = GetInspectionAttachUrl(db, Const.HJGL_PreWeldCuttingCheckMenuId, item.CuttingCheckId);
}
return Tuple.Create(data, total);
}
}
/// <summary>
/// 获取组对抽检台账
/// 获取组对检查台账
/// </summary>
public static Tuple<List<Model.PreWeldFitupCheckItem>, int> GetFitupCheckList(string projectId, string pipelineCode, string weldJointCode, int pageIndex, int pageSize)
{
@@ -96,14 +106,14 @@ namespace BLL
}
int total = query.Count();
var data = query.OrderBy(x => x.w.PipelineCode).ThenBy(x => x.w.WeldJointCode)
var data = query.OrderByDescending(x => x.f.CheckTime)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.Select(x => new Model.PreWeldFitupCheckItem
{
FitupCheckId = x.f.FitupCheckId,
ProjectId = x.f.ProjectId,
WeldJointId = x.w.WeldJointId,
WeldJointId = x.f.WeldJointId,
PipelineCode = x.w.PipelineCode,
WeldJointCode = x.w.WeldJointCode,
GrooveTypeId = x.f.GrooveTypeId,
@@ -113,21 +123,32 @@ namespace BLL
GrooveAngle = x.f.GrooveAngle,
FitupGap = x.f.FitupGap,
Misalignment = x.f.Misalignment,
WeldReinforcement = x.f.WeldReinforcement,
WeldHeight = x.f.WeldHeight,
WeldWidth = x.f.WeldWidth,
SurfaceDefect = x.f.SurfaceDefect,
CheckPerson = x.f.CheckPerson,
CheckPersonName = x.CheckPersonName,
CheckTime = x.f.CheckTime,
CreateUser = x.f.CreateUser,
CreateTime = x.f.CreateTime,
CheckResult = x.f.CheckResult,
UnqualifiedReason = x.f.UnqualifiedReason,
RectifyRequirement = x.f.RectifyRequirement,
Remark = x.f.Remark
})
.ToList();
foreach (var item in data)
{
item.AttachUrl1 = GetInspectionAttachUrl(db, Const.HJGL_PreWeldFitupCheckMenuId, item.FitupCheckId);
}
return Tuple.Create(data, total);
}
}
/// <summary>
/// 获取下料抽检实体
/// 获取下料检查实体
/// </summary>
public static Model.HJGL_PreWeldCuttingCheck GetCuttingCheckById(string cuttingCheckId)
{
@@ -138,14 +159,568 @@ namespace BLL
}
/// <summary>
/// 获取组对抽检实体
/// 获取组对检查实体
/// </summary>
public static Model.HJGL_PreWeldFitupCheck GetFitupCheckById(string fitupCheckId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return db.HJGL_PreWeldFitupCheck.FirstOrDefault(x => x.FitupCheckId == fitupCheckId);
}
}
/// <summary>
/// 兼容旧调用:按焊口获取组对检查记录,返回最新一条
/// </summary>
public static Model.HJGL_PreWeldFitupCheck GetFitupCheckByWeldJointId(string weldJointId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return db.HJGL_PreWeldFitupCheck.FirstOrDefault(x => x.WeldJointId == weldJointId);
return db.HJGL_PreWeldFitupCheck.Where(x => x.WeldJointId == weldJointId)
.OrderByDescending(x => x.CheckTime)
.FirstOrDefault();
}
}
/// <summary>
/// 按焊口获取下料记录
/// </summary>
public static List<Model.HJGL_PreWeldCuttingCheck> GetCuttingChecksByWeldJointId(string weldJointId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return db.HJGL_PreWeldCuttingCheck.Where(x => x.WeldJointId == weldJointId)
.OrderByDescending(x => x.CheckTime)
.ToList();
}
}
/// <summary>
/// 按焊口获取组对记录
/// </summary>
public static List<Model.HJGL_PreWeldFitupCheck> GetFitupChecksByWeldJointId(string weldJointId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
return db.HJGL_PreWeldFitupCheck.Where(x => x.WeldJointId == weldJointId)
.OrderByDescending(x => x.CheckTime)
.ToList();
}
}
/// <summary>
/// 保存下料检查;传入主键时修改对应记录,否则新增一条记录
/// </summary>
public static string SaveCuttingCheck(Model.PreWeldCuttingCheckInput item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
if (string.IsNullOrEmpty(item.WeldJointId))
{
throw new ArgumentException("焊口ID不能为空。");
}
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var weldJoint = db.HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == item.WeldJointId);
if (weldJoint == null)
{
throw new ArgumentException("未找到对应焊口。");
}
var check = string.IsNullOrEmpty(item.CuttingCheckId)
? null
: db.HJGL_PreWeldCuttingCheck.FirstOrDefault(x => x.CuttingCheckId == item.CuttingCheckId);
if (check == null)
{
check = new Model.HJGL_PreWeldCuttingCheck
{
CuttingCheckId = string.IsNullOrEmpty(item.CuttingCheckId) ? Guid.NewGuid().ToString() : item.CuttingCheckId,
CreateTime = DateTime.Now
};
db.HJGL_PreWeldCuttingCheck.InsertOnSubmit(check);
}
check.WeldJointId = item.WeldJointId;
check.ProjectId = string.IsNullOrEmpty(item.ProjectId) ? weldJoint.ProjectId : item.ProjectId;
check.CuttingLength = item.CuttingLength;
check.GrooveForm = item.GrooveForm;
check.GrooveAngle = item.GrooveAngle;
check.IsMaterialCodeBatchNoAccurate = item.IsMaterialCodeBatchNoAccurate;
check.IsMaterialQuantityAccurate = item.IsMaterialQuantityAccurate;
// 下料检查合格规则:材料编码批次和材料数量都准确才判定为合格。
check.IsQualified = item.IsMaterialCodeBatchNoAccurate && item.IsMaterialQuantityAccurate;
check.CheckPerson = item.CheckPerson;
check.CheckTime = item.CheckTime ?? DateTime.Now;
check.CreateUser = item.CreateUser ?? item.CheckPerson;
check.CheckResult = item.CheckResult;
check.UnqualifiedReason = item.UnqualifiedReason;
check.RectifyRequirement = item.RectifyRequirement;
check.Remark = item.Remark;
db.SubmitChanges();
SaveInspectionAttachUrl(item.AttachUrl1, Const.HJGL_PreWeldCuttingCheckMenuId, check.CuttingCheckId);
return check.CuttingCheckId;
}
}
/// <summary>
/// 保存组对检查;传入主键时修改对应记录,否则新增一条记录
/// </summary>
public static string SaveFitupCheck(Model.PreWeldFitupCheckInput item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
if (string.IsNullOrEmpty(item.WeldJointId))
{
throw new ArgumentException("焊口ID不能为空。");
}
if (string.IsNullOrEmpty(item.GrooveTypeId))
{
throw new ArgumentException("坡口类型不能为空。");
}
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var weldJoint = db.HJGL_WeldJoint.FirstOrDefault(x => x.WeldJointId == item.WeldJointId);
if (weldJoint == null)
{
throw new ArgumentException("未找到对应焊口。");
}
if (!db.Base_GrooveType.Any(x => x.GrooveTypeId == item.GrooveTypeId))
{
throw new ArgumentException("坡口类型不存在。");
}
var check = string.IsNullOrEmpty(item.FitupCheckId)
? null
: db.HJGL_PreWeldFitupCheck.FirstOrDefault(x => x.FitupCheckId == item.FitupCheckId);
if (check == null)
{
check = new Model.HJGL_PreWeldFitupCheck
{
FitupCheckId = string.IsNullOrEmpty(item.FitupCheckId) ? Guid.NewGuid().ToString() : item.FitupCheckId,
CreateTime = DateTime.Now
};
db.HJGL_PreWeldFitupCheck.InsertOnSubmit(check);
}
check.ProjectId = string.IsNullOrEmpty(item.ProjectId) ? weldJoint.ProjectId : item.ProjectId;
check.WeldJointId = item.WeldJointId;
check.GrooveTypeId = item.GrooveTypeId;
check.GrooveProcessType = item.GrooveProcessType;
check.GrooveAngle = item.GrooveAngle;
check.FitupGap = item.FitupGap;
check.Misalignment = item.Misalignment;
check.WeldReinforcement = item.WeldReinforcement;
check.WeldHeight = item.WeldHeight;
check.WeldWidth = item.WeldWidth;
check.SurfaceDefect = item.SurfaceDefect;
check.CheckPerson = item.CheckPerson;
check.CheckTime = item.CheckTime ?? DateTime.Now;
check.CreateUser = item.CreateUser ?? item.CheckPerson;
check.CheckResult = item.CheckResult;
check.UnqualifiedReason = item.UnqualifiedReason;
check.RectifyRequirement = item.RectifyRequirement;
check.Remark = item.Remark;
// 组对检查需要同步回写焊口主表,保证焊口基础信息保持最新
weldJoint.GrooveTypeId = item.GrooveTypeId;
weldJoint.GrooveProcessType = item.GrooveProcessType;
weldJoint.GrooveAngle = item.GrooveAngle;
weldJoint.FitupGap = item.FitupGap;
weldJoint.Misalignment = item.Misalignment;
db.SubmitChanges();
SaveInspectionAttachUrl(item.AttachUrl1, Const.HJGL_PreWeldFitupCheckMenuId, check.FitupCheckId);
return check.FitupCheckId;
}
}
/// <summary>
/// 获取防腐检查台账
/// </summary>
public static Tuple<List<Model.AntiCorrosionCheckRecordItem>, int> GetAntiCorrosionCheckList(string projectId, string materialCode, string paintCode, string intermediatePaint, string topcoat, string filmThickness, string checkResult, DateTime? startTime, DateTime? endTime, int pageIndex, int pageSize)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var query = from r in db.HJGL_AntiCorrosionCheckRecord
join m in db.HJGL_MaterialCodeLib on r.MaterialCode equals m.MaterialCode into materialJoin
from m in materialJoin.DefaultIfEmpty()
join paint in db.Tw_PaintCodeDict on r.PaintId equals paint.Id into paintJoin
from paint in paintJoin.DefaultIfEmpty()
join person in db.Person_Persons on r.CheckPerson equals person.PersonId into personJoin
from person in personJoin.DefaultIfEmpty()
where string.IsNullOrEmpty(projectId) || r.ProjectId == projectId
select new { r, m, paint, person };
if (!string.IsNullOrEmpty(materialCode))
{
query = query.Where(x => x.r.MaterialCode.Contains(materialCode));
}
if (!string.IsNullOrEmpty(paintCode))
{
query = query.Where(x => x.paint != null && x.paint.PaintCode.Contains(paintCode));
}
if (!string.IsNullOrEmpty(intermediatePaint))
{
query = query.Where(x => x.paint != null && x.paint.IntermediatePaint.Contains(intermediatePaint));
}
if (!string.IsNullOrEmpty(topcoat))
{
query = query.Where(x => x.paint != null && x.paint.Topcoat.Contains(topcoat));
}
decimal filmThicknessValue;
if (!string.IsNullOrWhiteSpace(filmThickness) && decimal.TryParse(filmThickness, out filmThicknessValue))
{
query = query.Where(x => x.r.FilmThickness == filmThicknessValue);
}
if (!string.IsNullOrEmpty(checkResult))
{
query = query.Where(x => x.r.CheckResult == checkResult);
}
if (startTime.HasValue)
{
query = query.Where(x => x.r.CheckTime >= startTime.Value);
}
if (endTime.HasValue)
{
query = query.Where(x => x.r.CheckTime < endTime.Value.AddDays(1));
}
int total = query.Count();
var data = query.OrderByDescending(x => x.r.CheckTime)
.Skip(pageIndex * pageSize)
.Take(pageSize)
.Select(x => new Model.AntiCorrosionCheckRecordItem
{
AntiCorrosionCheckId = x.r.AntiCorrosionCheckId,
ProjectId = x.r.ProjectId,
UnitWorkId = x.r.UnitWorkId,
MaterialId = x.r.MaterialId,
MaterialCode = x.r.MaterialCode,
MaterialName = x.m == null ? string.Empty : x.m.MaterialName,
MaterialSpec = x.m == null ? string.Empty : x.m.MaterialSpec,
MaterialMade = x.m == null ? string.Empty : x.m.MaterialMade,
MaterialDef = x.m == null ? string.Empty : x.m.MaterialDef,
MaterialUnit = x.m == null ? string.Empty : x.m.MaterialUnit,
HeatNo = x.m == null ? string.Empty : x.m.HeatNo,
BatchNo = x.m == null ? string.Empty : x.m.BatchNo,
Code = x.m == null ? string.Empty : x.m.Code,
AnticorrosionLevel = x.r.AnticorrosionLevel,
PaintId = x.r.PaintId,
PaintCode = x.paint == null ? string.Empty : x.paint.PaintCode,
Primer = x.paint == null ? string.Empty : x.paint.Primer,
IntermediatePaint = x.paint == null ? string.Empty : x.paint.IntermediatePaint,
Topcoat = x.paint == null ? string.Empty : x.paint.Topcoat,
ColorCode = x.paint == null ? string.Empty : x.paint.ColorCode,
FilmThickness = x.r.FilmThickness,
SandBlasting = x.r.SandBlasting,
RustSandBlasting = x.r.RustSandBlasting,
CheckResult = x.r.CheckResult,
CheckPerson = x.r.CheckPerson,
CheckPersonName = x.person == null ? string.Empty : x.person.PersonName,
CheckTime = x.r.CheckTime,
UnqualifiedReason = x.r.UnqualifiedReason,
RectifyRequirement = x.r.RectifyRequirement,
Remark = x.r.Remark,
CreateUser = x.r.CreateUser,
CreateTime = x.r.CreateTime
})
.ToList();
foreach (var item in data)
{
item.AttachUrl1 = GetInspectionAttachUrl(db, Const.Tw_AntiCorrosionCheckRecordMenuId, item.AntiCorrosionCheckId);
}
return Tuple.Create(data, total);
}
}
/// <summary>
/// 根据防腐记录ID获取详情
/// </summary>
public static Model.AntiCorrosionCheckRecordItem GetAntiCorrosionCheckById(string antiCorrosionCheckId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var query = from r in db.HJGL_AntiCorrosionCheckRecord
join m in db.HJGL_MaterialCodeLib on r.MaterialCode equals m.MaterialCode into materialJoin
from m in materialJoin.DefaultIfEmpty()
join paint in db.Tw_PaintCodeDict on r.PaintId equals paint.Id into paintJoin
from paint in paintJoin.DefaultIfEmpty()
join person in db.Person_Persons on r.CheckPerson equals person.PersonId into personJoin
from person in personJoin.DefaultIfEmpty()
where r.AntiCorrosionCheckId == antiCorrosionCheckId
select new Model.AntiCorrosionCheckRecordItem
{
AntiCorrosionCheckId = r.AntiCorrosionCheckId,
ProjectId = r.ProjectId,
UnitWorkId = r.UnitWorkId,
MaterialId = r.MaterialId,
MaterialCode = r.MaterialCode,
MaterialName = m == null ? string.Empty : m.MaterialName,
MaterialSpec = m == null ? string.Empty : m.MaterialSpec,
MaterialMade = m == null ? string.Empty : m.MaterialMade,
MaterialDef = m == null ? string.Empty : m.MaterialDef,
MaterialUnit = m == null ? string.Empty : m.MaterialUnit,
HeatNo = m == null ? string.Empty : m.HeatNo,
BatchNo = m == null ? string.Empty : m.BatchNo,
Code = m == null ? string.Empty : m.Code,
AnticorrosionLevel = r.AnticorrosionLevel,
PaintId = r.PaintId,
PaintCode = paint == null ? string.Empty : paint.PaintCode,
Primer = paint == null ? string.Empty : paint.Primer,
IntermediatePaint = paint == null ? string.Empty : paint.IntermediatePaint,
Topcoat = paint == null ? string.Empty : paint.Topcoat,
ColorCode = paint == null ? string.Empty : paint.ColorCode,
FilmThickness = r.FilmThickness,
SandBlasting = r.SandBlasting,
RustSandBlasting = r.RustSandBlasting,
CheckResult = r.CheckResult,
CheckPerson = r.CheckPerson,
CheckPersonName = person == null ? string.Empty : person.PersonName,
CheckTime = r.CheckTime,
UnqualifiedReason = r.UnqualifiedReason,
RectifyRequirement = r.RectifyRequirement,
Remark = r.Remark,
CreateUser = r.CreateUser,
CreateTime = r.CreateTime
};
var item = query.FirstOrDefault();
if (item != null)
{
item.AttachUrl1 = GetInspectionAttachUrl(db, Const.Tw_AntiCorrosionCheckRecordMenuId, item.AntiCorrosionCheckId);
}
return item;
}
}
/// <summary>
/// 按材料编码获取防腐记录列表
/// </summary>
public static List<Model.AntiCorrosionCheckRecordItem> GetAntiCorrosionChecksByMaterialCode(string materialCode, string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var query = from r in db.HJGL_AntiCorrosionCheckRecord
join m in db.HJGL_MaterialCodeLib on r.MaterialCode equals m.MaterialCode into materialJoin
from m in materialJoin.DefaultIfEmpty()
join paint in db.Tw_PaintCodeDict on r.PaintId equals paint.Id into paintJoin
from paint in paintJoin.DefaultIfEmpty()
join person in db.Person_Persons on r.CheckPerson equals person.PersonId into personJoin
from person in personJoin.DefaultIfEmpty()
where r.MaterialCode == materialCode && (string.IsNullOrEmpty(projectId) || r.ProjectId == projectId)
orderby r.CheckTime descending
select new Model.AntiCorrosionCheckRecordItem
{
AntiCorrosionCheckId = r.AntiCorrosionCheckId,
ProjectId = r.ProjectId,
UnitWorkId = r.UnitWorkId,
MaterialId = r.MaterialId,
MaterialCode = r.MaterialCode,
MaterialName = m == null ? string.Empty : m.MaterialName,
MaterialSpec = m == null ? string.Empty : m.MaterialSpec,
MaterialMade = m == null ? string.Empty : m.MaterialMade,
MaterialDef = m == null ? string.Empty : m.MaterialDef,
MaterialUnit = m == null ? string.Empty : m.MaterialUnit,
HeatNo = m == null ? string.Empty : m.HeatNo,
BatchNo = m == null ? string.Empty : m.BatchNo,
Code = m == null ? string.Empty : m.Code,
AnticorrosionLevel = r.AnticorrosionLevel,
PaintId = r.PaintId,
PaintCode = paint == null ? string.Empty : paint.PaintCode,
Primer = paint == null ? string.Empty : paint.Primer,
IntermediatePaint = paint == null ? string.Empty : paint.IntermediatePaint,
Topcoat = paint == null ? string.Empty : paint.Topcoat,
ColorCode = paint == null ? string.Empty : paint.ColorCode,
FilmThickness = r.FilmThickness,
SandBlasting = r.SandBlasting,
RustSandBlasting = r.RustSandBlasting,
CheckResult = r.CheckResult,
CheckPerson = r.CheckPerson,
CheckPersonName = person == null ? string.Empty : person.PersonName,
CheckTime = r.CheckTime,
UnqualifiedReason = r.UnqualifiedReason,
RectifyRequirement = r.RectifyRequirement,
Remark = r.Remark,
CreateUser = r.CreateUser,
CreateTime = r.CreateTime
};
var data = query.ToList();
foreach (var item in data)
{
item.AttachUrl1 = GetInspectionAttachUrl(db, Const.Tw_AntiCorrosionCheckRecordMenuId, item.AntiCorrosionCheckId);
}
return data;
}
}
/// <summary>
/// 按焊口获取防腐检查记录列表
/// </summary>
/// <param name="weldJointId"></param>
/// <returns></returns>
public static List<Model.AntiCorrosionCheckRecordItem> GetAntiCorrosionChecksByWeldJointId(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 r in db.HJGL_AntiCorrosionCheckRecord
join m in db.HJGL_MaterialCodeLib on r.MaterialCode equals m.MaterialCode into materialJoin
from m in materialJoin.DefaultIfEmpty()
join paint in db.Tw_PaintCodeDict on r.PaintId equals paint.Id into paintJoin
from paint in paintJoin.DefaultIfEmpty()
join person in db.Person_Persons on r.CheckPerson equals person.PersonId into personJoin
from person in personJoin.DefaultIfEmpty()
join weldmat in db.HJGL_PipeLineMat on r.MaterialCode equals weldmat.MaterialCode into weldJoin
from weldmat in weldJoin.DefaultIfEmpty()
where weldmat.WeldJointId == weldJointId && (string.IsNullOrEmpty(getweldJointPaintId) || r.PaintId == getweldJointPaintId)
orderby r.CheckTime descending
select new Model.AntiCorrosionCheckRecordItem
{
AntiCorrosionCheckId = r.AntiCorrosionCheckId,
ProjectId = r.ProjectId,
UnitWorkId = r.UnitWorkId,
MaterialId = r.MaterialId,
MaterialCode = r.MaterialCode,
MaterialName = m == null ? string.Empty : m.MaterialName,
MaterialSpec = m == null ? string.Empty : m.MaterialSpec,
MaterialMade = m == null ? string.Empty : m.MaterialMade,
MaterialDef = m == null ? string.Empty : m.MaterialDef,
MaterialUnit = m == null ? string.Empty : m.MaterialUnit,
HeatNo = m == null ? string.Empty : m.HeatNo,
BatchNo = m == null ? string.Empty : m.BatchNo,
Code = m == null ? string.Empty : m.Code,
AnticorrosionLevel = r.AnticorrosionLevel,
PaintId = r.PaintId,
PaintCode = paint == null ? string.Empty : paint.PaintCode,
Primer = paint == null ? string.Empty : paint.Primer,
IntermediatePaint = paint == null ? string.Empty : paint.IntermediatePaint,
Topcoat = paint == null ? string.Empty : paint.Topcoat,
ColorCode = paint == null ? string.Empty : paint.ColorCode,
FilmThickness = r.FilmThickness,
SandBlasting = r.SandBlasting,
RustSandBlasting = r.RustSandBlasting,
CheckResult = r.CheckResult,
CheckPerson = r.CheckPerson,
CheckPersonName = person == null ? string.Empty : person.PersonName,
CheckTime = r.CheckTime,
UnqualifiedReason = r.UnqualifiedReason,
RectifyRequirement = r.RectifyRequirement,
Remark = r.Remark,
CreateUser = r.CreateUser,
CreateTime = r.CreateTime
};
var data = query.ToList();
foreach (var item in data)
{
item.AttachUrl1 = GetInspectionAttachUrl(db, Const.Tw_AntiCorrosionCheckRecordMenuId, item.AntiCorrosionCheckId);
}
return data;
}
}
/// <summary>
/// 保存防腐检查,始终新增一条历史记录
/// </summary>
public static string SaveAntiCorrosionCheck(Model.AntiCorrosionCheckRecordInput item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
if (string.IsNullOrEmpty(item.MaterialCode))
{
throw new ArgumentException("材料编码不能为空。");
}
if (string.IsNullOrEmpty(item.PaintId))
{
throw new ArgumentException("防腐代码不能为空。");
}
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
if (!db.Tw_PaintCodeDict.Any(x => x.Id == item.PaintId && x.IsUsed))
{
throw new ArgumentException("防腐代码不存在或已停用。");
}
var check = string.IsNullOrEmpty(item.AntiCorrosionCheckId)
? null
: db.HJGL_AntiCorrosionCheckRecord.FirstOrDefault(x => x.AntiCorrosionCheckId == item.AntiCorrosionCheckId);
if (check == null)
{
check = new Model.HJGL_AntiCorrosionCheckRecord
{
AntiCorrosionCheckId = string.IsNullOrEmpty(item.AntiCorrosionCheckId) ? Guid.NewGuid().ToString() : item.AntiCorrosionCheckId,
CreateTime = DateTime.Now
};
db.HJGL_AntiCorrosionCheckRecord.InsertOnSubmit(check);
}
var materialId = item.MaterialId;
check.ProjectId = item.ProjectId;
check.MaterialId = materialId;
check.MaterialCode = item.MaterialCode;
check.AnticorrosionLevel = item.AnticorrosionLevel;
check.PaintId = item.PaintId;
check.FilmThickness = item.FilmThickness;
check.SandBlasting = item.SandBlasting;
check.RustSandBlasting = item.RustSandBlasting;
check.CheckResult = item.CheckResult;
check.CheckPerson = item.CheckPerson;
check.CheckTime = item.CheckTime ?? DateTime.Now;
check.UnqualifiedReason = item.UnqualifiedReason;
check.RectifyRequirement = item.RectifyRequirement;
check.Remark = item.Remark;
check.CreateUser = string.IsNullOrEmpty(item.CreateUser) ? item.CheckPerson : item.CreateUser;
db.SubmitChanges();
SaveInspectionAttachUrl(item.AttachUrl1, Const.Tw_AntiCorrosionCheckRecordMenuId, check.AntiCorrosionCheckId);
return check.AntiCorrosionCheckId;
}
}
/// <summary>
/// 保存检查附件
/// </summary>
private static void SaveInspectionAttachUrl(string attachUrl, string menuId, string dataId)
{
if (attachUrl == null)
{
return;
}
if (!string.IsNullOrEmpty(attachUrl))
{
UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(attachUrl, 10, null), attachUrl, menuId, dataId);
}
else
{
CommonService.DeleteAttachFileById(menuId, dataId);
}
}
/// <summary>
/// 根据菜单和记录ID获取检查附件地址
/// </summary>
private static string GetInspectionAttachUrl(Model.SGGLDB db, string menuId, string dataId)
{
var attachUrl = db.AttachFile
.Where(x => x.MenuId == menuId && x.ToKeyId == dataId)
.Select(x => x.AttachUrl)
.FirstOrDefault();
return string.IsNullOrEmpty(attachUrl) ? attachUrl : attachUrl.Replace('\\', '/');
}
}
}
@@ -0,0 +1,101 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AntiCorrosionCheckRecord.aspx.cs" Inherits="FineUIPro.Web.CLGL.AntiCorrosionCheckRecord" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>防腐检查记录</title>
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel ID="Panel2" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="Region" BoxConfigAlign="Stretch">
<Items>
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true"
Layout="VBox" ShowHeader="false" BodyPadding="5px" Title="防腐检查记录" AutoScroll="true">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="防腐检查记录"
runat="server" BoxFlex="1" EnableColumnLines="true" DataKeyNames="AntiCorrosionCheckId"
DataIDField="AntiCorrosionCheckId" AllowPaging="true" IsDatabasePaging="true" PageSize="15"
OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true"
OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:TextBox ID="txtMaterialCode" runat="server" Label="材料编码" EmptyText="输入查询条件"
Width="220px" LabelWidth="80px" LabelAlign="Right" />
<f:TextBox ID="txtPaintCode" runat="server" Label="涂漆代码" EmptyText="输入查询条件"
Width="220px" LabelWidth="80px" LabelAlign="Right" />
<f:TextBox ID="txtIntermediatePaint" runat="server" Label="中间漆" EmptyText="输入查询条件"
Width="180px" LabelWidth="70px" LabelAlign="Right" />
<f:TextBox ID="txtTopcoat" runat="server" Label="面漆" EmptyText="输入查询条件"
Width="180px" LabelWidth="70px" LabelAlign="Right" />
<f:TextBox ID="txtFilmThickness" runat="server" Label="膜厚" EmptyText="输入查询条件"
Width="140px" LabelWidth="50px" LabelAlign="Right" />
<f:DropDownList ID="ddlCheckResult" runat="server" Label="结果" Width="150px"
LabelWidth="50px" LabelAlign="Right" />
<f:ToolbarFill ID="ToolbarFill1" runat="server" />
<f:Button ID="btnQuery" Text="查询" Icon="SystemSearch" EnablePostBack="true"
OnClick="btnQuery_Click" runat="server" />
<f:Button ID="btnNew" Text="新增" Icon="Add" EnablePostBack="true"
runat="server" OnClick="btnNew_Click" />
</Items>
</f:Toolbar>
<f:Toolbar ID="Toolbar3" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DatePicker ID="dpStartTime" runat="server" Label="开始时间" DateFormatString="yyyy-MM-dd"
Width="200px" LabelWidth="80px" LabelAlign="Right" />
<f:DatePicker ID="dpEndTime" runat="server" Label="结束时间" DateFormatString="yyyy-MM-dd"
Width="200px" LabelWidth="80px" LabelAlign="Right" />
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RenderField ID="rfMaterialCode" Width="180px" ColumnID="MaterialCode" DataField="MaterialCode" FieldType="String"
HeaderText="材料编码" HeaderTextAlign="Center" TextAlign="Left" />
<f:RenderField ID="rfMaterialName" Width="180px" ColumnID="MaterialName" DataField="MaterialName" FieldType="String"
HeaderText="材料名称" HeaderTextAlign="Center" TextAlign="Left" />
<f:RenderField ID="rfMaterialSpec" Width="180px" ColumnID="MaterialSpec" DataField="MaterialSpec" FieldType="String"
HeaderText="规格" HeaderTextAlign="Center" TextAlign="Left" />
<f:RenderField ID="rfPaintCode" Width="140px" ColumnID="PaintCode" DataField="PaintCode" FieldType="String"
HeaderText="涂漆代码" HeaderTextAlign="Center" TextAlign="Left" />
<f:RenderField ID="rfIntermediatePaint" Width="160px" ColumnID="IntermediatePaint" DataField="IntermediatePaint" FieldType="String"
HeaderText="中间漆" HeaderTextAlign="Center" TextAlign="Left" />
<f:RenderField ID="rfTopcoat" Width="160px" ColumnID="Topcoat" DataField="Topcoat" FieldType="String"
HeaderText="面漆" HeaderTextAlign="Center" TextAlign="Left" />
<f:RenderField ID="rfFilmThickness" Width="110px" ColumnID="FilmThickness" DataField="FilmThickness" FieldType="Double"
HeaderText="膜厚" HeaderTextAlign="Center" TextAlign="Right" />
<f:RenderField ID="rfCheckResult" Width="120px" ColumnID="CheckResult" DataField="CheckResult" FieldType="String"
HeaderText="检查结果" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField ID="rfCheckPersonName" Width="160px" ColumnID="CheckPersonName" DataField="CheckPersonName" FieldType="String"
HeaderText="检查人" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField ID="rfCheckTime" Width="170px" ColumnID="CheckTime" DataField="CheckTime" FieldType="Date"
RendererArgument="yyyy-MM-dd HH:mm" HeaderText="检查时间" HeaderTextAlign="Center" TextAlign="Center" />
</Columns>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server" />
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:" />
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="10" Value="10" />
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
</Items>
</f:Panel>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="防腐检查记录" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Top" EnableResize="false" runat="server" OnClose="Window1_Close" IsModal="true"
Width="860px" Height="600px" />
</form>
</body>
</html>
@@ -0,0 +1,85 @@
using BLL;
using System;
namespace FineUIPro.Web.CLGL
{
public partial class AntiCorrosionCheckRecord : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
ddlCheckResult.Items.Clear();
ddlCheckResult.Items.Add(new FineUIPro.ListItem("全部", string.Empty));
ddlCheckResult.Items.Add(new FineUIPro.ListItem("合格", "合格"));
ddlCheckResult.Items.Add(new FineUIPro.ListItem("不合格", "不合格"));
ddlCheckResult.SelectedIndex = 0;
BindGrid();
}
}
private void BindGrid()
{
var result = PreWeldInspectionService.GetAntiCorrosionCheckList(
CurrUser.LoginProjectId,
txtMaterialCode.Text.Trim(),
txtPaintCode.Text.Trim(),
txtIntermediatePaint.Text.Trim(),
txtTopcoat.Text.Trim(),
txtFilmThickness.Text.Trim(),
ddlCheckResult.SelectedValue,
dpStartTime.SelectedDate,
dpEndTime.SelectedDate,
Grid1.PageIndex,
Grid1.PageSize);
Grid1.RecordCount = result.Item2;
Grid1.DataSource = result.Item1;
Grid1.DataBind();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
protected void btnQuery_Click(object sender, EventArgs e)
{
Grid1.PageIndex = 0;
BindGrid();
}
protected void btnNew_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId, Const.Tw_AntiCorrosionCheckRecordMenuId, Const.BtnAdd))
{
PageContext.RegisterStartupScript(Window1.GetShowReference("AntiCorrosionCheckRecordEdit.aspx"));
}
}
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId, Const.Tw_AntiCorrosionCheckRecordMenuId, Const.BtnSee))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("AntiCorrosionCheckRecordView.aspx?AntiCorrosionCheckId={0}", Grid1.SelectedRowID)));
}
}
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
}
}
@@ -0,0 +1,47 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能会导致不正确的行为,如果重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.CLGL
{
public partial class AntiCorrosionCheckRecord
{
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
protected global::FineUIPro.PageManager PageManager1;
protected global::FineUIPro.Panel Panel1;
protected global::FineUIPro.Panel Panel2;
protected global::FineUIPro.Panel panelCenterRegion;
protected global::FineUIPro.Grid Grid1;
protected global::FineUIPro.Toolbar Toolbar2;
protected global::FineUIPro.TextBox txtMaterialCode;
protected global::FineUIPro.TextBox txtPaintCode;
protected global::FineUIPro.TextBox txtIntermediatePaint;
protected global::FineUIPro.TextBox txtTopcoat;
protected global::FineUIPro.TextBox txtFilmThickness;
protected global::FineUIPro.DropDownList ddlCheckResult;
protected global::FineUIPro.ToolbarFill ToolbarFill1;
protected global::FineUIPro.Button btnQuery;
protected global::FineUIPro.Button btnNew;
protected global::FineUIPro.Toolbar Toolbar3;
protected global::FineUIPro.DatePicker dpStartTime;
protected global::FineUIPro.DatePicker dpEndTime;
protected global::FineUIPro.RenderField rfMaterialCode;
protected global::FineUIPro.RenderField rfMaterialName;
protected global::FineUIPro.RenderField rfMaterialSpec;
protected global::FineUIPro.RenderField rfPaintCode;
protected global::FineUIPro.RenderField rfIntermediatePaint;
protected global::FineUIPro.RenderField rfTopcoat;
protected global::FineUIPro.RenderField rfFilmThickness;
protected global::FineUIPro.RenderField rfCheckResult;
protected global::FineUIPro.RenderField rfCheckPersonName;
protected global::FineUIPro.RenderField rfCheckTime;
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
protected global::FineUIPro.ToolbarText ToolbarText1;
protected global::FineUIPro.DropDownList ddlPageSize;
protected global::FineUIPro.Window Window1;
}
}
@@ -0,0 +1,103 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AntiCorrosionCheckRecordEdit.aspx.cs" Inherits="FineUIPro.Web.CLGL.AntiCorrosionCheckRecordEdit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>防腐检查记录</title>
<base target="_self" />
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMaterialCode" runat="server" Label="材料编码" Required="true"
ShowRedStar="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpPaintId" runat="server" Label="涂漆代码" Required="true"
ShowRedStar="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtAnticorrosionLevel" runat="server" Label="防腐等级" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="numFilmThickness" runat="server" Label="膜厚" LabelWidth="160px"
DecimalPrecision="2" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtSandBlasting" runat="server" Label="喷砂信息" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRustSandBlasting" runat="server" Label="除锈喷砂信息" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="ddlCheckResult" runat="server" Label="检查结果" LabelWidth="160px" Required="true" ShowRedStar="true">
<f:ListItem Text="合格" Value="合格" />
<f:ListItem Text="不合格" Value="不合格" />
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCheckPerson" runat="server" Label="检查人" LabelWidth="160px" Required="true"
ShowRedStar="true" EnableEdit="true" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="dpCheckTime" runat="server" Label="检查时间" LabelWidth="160px"
DateFormatString="yyyy-MM-dd" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtUnqualifiedReason" runat="server" Label="不合格原因" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRectifyRequirement" runat="server" Label="整改要求" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Button ID="btnAttachUrl" Text="附件" Icon="TableCell" runat="server" OnClick="btnAttachUrl_Click" />
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Text="保存" Icon="SystemSave" runat="server" OnClick="btnSave_Click" ValidateForms="SimpleForm1" />
<f:Button ID="btnClose" EnablePostBack="false" Text="关闭" runat="server" Icon="SystemClose" />
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
<f:Window ID="WindowAtt" Title="附件上传" Hidden="true" EnableMaximize="true" EnableIFrame="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px" Height="420px" />
</form>
</body>
</html>
@@ -0,0 +1,119 @@
using BLL;
using System;
namespace FineUIPro.Web.CLGL
{
public partial class AntiCorrosionCheckRecordEdit : PageBase
{
public string AntiCorrosionCheckId
{
get { return (string)ViewState["AntiCorrosionCheckId"]; }
set { ViewState["AntiCorrosionCheckId"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
AntiCorrosionCheckId = Request.Params["AntiCorrosionCheckId"];
BindPaintCode();
BindCheckPerson();
if (!string.IsNullOrEmpty(AntiCorrosionCheckId))
{
BindData();
}
else
{
drpCheckPerson.SelectedValue = CurrUser.PersonId;
dpCheckTime.SelectedDate = DateTime.Now;
}
}
}
private void BindPaintCode()
{
drpPaintId.DataTextField = "PaintCode";
drpPaintId.DataValueField = "Id";
drpPaintId.DataSource = TwAntiCorrosionTrustService.GetPaintCodeList();
drpPaintId.DataBind();
Funs.FineUIPleaseSelect(drpPaintId);
}
private void BindCheckPerson()
{
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(drpCheckPerson, CurrUser.LoginProjectId, null, null, true);
}
private void BindData()
{
var model = PreWeldInspectionService.GetAntiCorrosionCheckById(AntiCorrosionCheckId);
if (model == null)
{
return;
}
txtMaterialCode.Text = model.MaterialCode;
txtAnticorrosionLevel.Text = model.AnticorrosionLevel;
drpPaintId.SelectedValue = model.PaintId;
if (model.FilmThickness.HasValue)
{
numFilmThickness.Text = model.FilmThickness.Value.ToString();
}
txtSandBlasting.Text = model.SandBlasting;
txtRustSandBlasting.Text = model.RustSandBlasting;
ddlCheckResult.SelectedValue = model.CheckResult;
drpCheckPerson.SelectedValue = model.CheckPerson;
dpCheckTime.SelectedDate = model.CheckTime;
txtUnqualifiedReason.Text = model.UnqualifiedReason;
txtRectifyRequirement.Text = model.RectifyRequirement;
txtRemark.Text = model.Remark;
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (!CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId, Const.Tw_AntiCorrosionCheckRecordMenuId, Const.BtnSave))
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
var item = new Model.AntiCorrosionCheckRecordInput
{
AntiCorrosionCheckId = AntiCorrosionCheckId,
ProjectId = CurrUser.LoginProjectId,
MaterialCode = txtMaterialCode.Text.Trim(),
AnticorrosionLevel = txtAnticorrosionLevel.Text.Trim(),
PaintId = drpPaintId.SelectedValue,
FilmThickness = string.IsNullOrWhiteSpace(numFilmThickness.Text) ? (decimal?)null : Convert.ToDecimal(numFilmThickness.Text),
SandBlasting = txtSandBlasting.Text.Trim(),
RustSandBlasting = txtRustSandBlasting.Text.Trim(),
CheckResult = ddlCheckResult.SelectedValue,
CheckPerson = drpCheckPerson.SelectedValue,
CheckTime = dpCheckTime.SelectedDate ?? DateTime.Now,
UnqualifiedReason = txtUnqualifiedReason.Text.Trim(),
RectifyRequirement = txtRectifyRequirement.Text.Trim(),
Remark = txtRemark.Text.Trim(),
CreateUser = CurrUser.PersonId
};
AntiCorrosionCheckId = APIPreWeldInspectionService.SaveAntiCorrosionCheck(item);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(AntiCorrosionCheckId))
{
Alert.ShowInTop("请先保存防腐检查记录后再上传附件!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
string.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CLGL/AntiCorrosionCheckRecord&menuId={1}&edit=1&type=-1",
AntiCorrosionCheckId, Const.Tw_AntiCorrosionCheckRecordMenuId)));
}
}
}
@@ -0,0 +1,32 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.CLGL
{
public partial class AntiCorrosionCheckRecordEdit
{
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
protected global::FineUIPro.PageManager PageManager1;
protected global::FineUIPro.Form SimpleForm1;
protected global::FineUIPro.TextBox txtMaterialCode;
protected global::FineUIPro.TextBox txtAnticorrosionLevel;
protected global::FineUIPro.DropDownList drpPaintId;
protected global::FineUIPro.NumberBox numFilmThickness;
protected global::FineUIPro.TextArea txtSandBlasting;
protected global::FineUIPro.TextArea txtRustSandBlasting;
protected global::FineUIPro.DropDownList ddlCheckResult;
protected global::FineUIPro.DropDownList drpCheckPerson;
protected global::FineUIPro.DatePicker dpCheckTime;
protected global::FineUIPro.TextArea txtUnqualifiedReason;
protected global::FineUIPro.TextArea txtRectifyRequirement;
protected global::FineUIPro.TextArea txtRemark;
protected global::FineUIPro.Button btnAttachUrl;
protected global::FineUIPro.Toolbar Toolbar1;
protected global::FineUIPro.Button btnSave;
protected global::FineUIPro.Button btnClose;
protected global::FineUIPro.Window WindowAtt;
}
}
@@ -0,0 +1,95 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AntiCorrosionCheckRecordView.aspx.cs" Inherits="FineUIPro.Web.CLGL.AntiCorrosionCheckRecordView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>防腐检查记录详情</title>
<base target="_self" />
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMaterialCode" runat="server" Label="材料编码" Readonly="true" LabelWidth="160px" />
<f:TextBox ID="txtMaterialName" runat="server" Label="材料名称" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtMaterialSpec" runat="server" Label="规格" Readonly="true" LabelWidth="160px" />
<f:TextBox ID="txtMaterialMade" runat="server" Label="材质" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtPaintCode" runat="server" Label="涂漆代码" Readonly="true" LabelWidth="160px" />
<f:TextBox ID="txtAnticorrosionLevel" runat="server" Label="防腐等级" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtIntermediatePaint" runat="server" Label="中间漆" Readonly="true" LabelWidth="160px" />
<f:TextBox ID="txtTopcoat" runat="server" Label="面漆" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtFilmThickness" runat="server" Label="膜厚" Readonly="true" LabelWidth="160px" />
<f:TextBox ID="txtCheckPerson" runat="server" Label="检查人" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtSandBlasting" runat="server" Label="喷砂信息" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRustSandBlasting" runat="server" Label="除锈喷砂信息" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtCheckResult" runat="server" Label="检查结果" Readonly="true" LabelWidth="160px" />
<f:TextBox ID="txtCheckTime" runat="server" Label="检查时间" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtUnqualifiedReason" runat="server" Label="不合格原因" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRectifyRequirement" runat="server" Label="整改要求" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" Readonly="true" LabelWidth="160px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Button ID="btnAttachUrl" Text="附件" Icon="TableCell" runat="server" OnClick="btnAttachUrl_Click" />
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnClose" EnablePostBack="false" Text="关闭" runat="server" Icon="SystemClose" />
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
<f:Window ID="WindowAtt" Title="附件查看" Hidden="true" EnableMaximize="true" EnableIFrame="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px" Height="420px" />
</form>
</body>
</html>
@@ -0,0 +1,64 @@
using BLL;
using System;
namespace FineUIPro.Web.CLGL
{
public partial class AntiCorrosionCheckRecordView : PageBase
{
public string AntiCorrosionCheckId
{
get { return (string)ViewState["AntiCorrosionCheckId"]; }
set { ViewState["AntiCorrosionCheckId"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
AntiCorrosionCheckId = Request.Params["AntiCorrosionCheckId"];
BindData();
}
}
private void BindData()
{
var model = PreWeldInspectionService.GetAntiCorrosionCheckById(AntiCorrosionCheckId);
if (model == null)
{
return;
}
txtMaterialCode.Text = model.MaterialCode;
txtMaterialName.Text = model.MaterialName;
txtMaterialSpec.Text = model.MaterialSpec;
txtMaterialMade.Text = model.MaterialMade;
txtPaintCode.Text = model.PaintCode;
txtAnticorrosionLevel.Text = model.AnticorrosionLevel;
txtIntermediatePaint.Text = model.IntermediatePaint;
txtTopcoat.Text = model.Topcoat;
txtFilmThickness.Text = model.FilmThickness.HasValue ? model.FilmThickness.Value.ToString() : string.Empty;
txtSandBlasting.Text = model.SandBlasting;
txtRustSandBlasting.Text = model.RustSandBlasting;
txtCheckResult.Text = model.CheckResult;
txtCheckPerson.Text = model.CheckPersonName;
txtCheckTime.Text = model.CheckTime.HasValue ? string.Format("{0:yyyy-MM-dd HH:mm}", model.CheckTime.Value) : string.Empty;
txtUnqualifiedReason.Text = model.UnqualifiedReason;
txtRectifyRequirement.Text = model.RectifyRequirement;
txtRemark.Text = model.Remark;
}
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(AntiCorrosionCheckId))
{
Alert.ShowInTop("未找到防腐检查记录!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
string.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CLGL/AntiCorrosionCheckRecord&menuId={1}&edit=0&type=-1",
AntiCorrosionCheckId, Const.Tw_AntiCorrosionCheckRecordMenuId)));
}
}
}
@@ -0,0 +1,36 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.CLGL
{
public partial class AntiCorrosionCheckRecordView
{
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
protected global::FineUIPro.PageManager PageManager1;
protected global::FineUIPro.Form SimpleForm1;
protected global::FineUIPro.TextBox txtMaterialCode;
protected global::FineUIPro.TextBox txtMaterialName;
protected global::FineUIPro.TextBox txtMaterialSpec;
protected global::FineUIPro.TextBox txtMaterialMade;
protected global::FineUIPro.TextBox txtPaintCode;
protected global::FineUIPro.TextBox txtAnticorrosionLevel;
protected global::FineUIPro.TextBox txtFilmThickness;
protected global::FineUIPro.TextBox txtIntermediatePaint;
protected global::FineUIPro.TextBox txtTopcoat;
protected global::FineUIPro.TextArea txtSandBlasting;
protected global::FineUIPro.TextArea txtRustSandBlasting;
protected global::FineUIPro.TextBox txtCheckResult;
protected global::FineUIPro.TextBox txtCheckPerson;
protected global::FineUIPro.TextBox txtCheckTime;
protected global::FineUIPro.TextArea txtUnqualifiedReason;
protected global::FineUIPro.TextArea txtRectifyRequirement;
protected global::FineUIPro.TextArea txtRemark;
protected global::FineUIPro.Button btnAttachUrl;
protected global::FineUIPro.Toolbar Toolbar1;
protected global::FineUIPro.Button btnClose;
protected global::FineUIPro.Window WindowAtt;
}
}
+52 -3
View File
@@ -33,9 +33,9 @@
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="材料库存表" EnableCollapse="true" ForceFit="true"
runat="server" BoxFlex="1" DataKeyNames="Id" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="Id"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="Id" OnRowCommand="Grid1_RowCommand"
SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true" EnableTextSelection="True"
AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange">
AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" AllowColumnLocking="true">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
@@ -91,6 +91,7 @@
<f:RenderField Width="150px" ColumnID="StockNum" DataField="StockNum" SortField="StockNum"
FieldType="String" HeaderText="库存数量" TextAlign="Left" HeaderTextAlign="Center">
</f:RenderField>
<f:LinkButtonField Width="120px" ColumnID="btnBarCodePrint" TextAlign="Center" CommandName="btnBarCodePrint" Text="入库条码打印" Locked="true" />
</Columns>
<%-- <Listeners>
@@ -135,8 +136,56 @@
return false;
}--%>
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
__doPostBack(null, 'reloadGrid');
}
function printByHiddenFrame(url) {
var frameId = 'fastreport-print-frame-' + new Date().getTime();
var frame = document.createElement('iframe');
frame.id = frameId;
frame.name = frameId;
frame.style.position = 'fixed';
frame.style.left = '-10000px';
frame.style.top = '-10000px';
frame.style.width = '1px';
frame.style.height = '1px';
frame.style.border = '0';
frame.style.opacity = '0';
frame.onload = function() {
setTimeout(function() {
try {
frame.contentWindow.onafterprint = cleanupPrintFrame;
frame.contentWindow.focus();
frame.contentWindow.print();
} catch (e) {
window.print();
}
}, 500);
};
frame.src = url;
document.body.appendChild(frame);
var cleaned = false;
function cleanupPrintFrame() {
if (cleaned) {
return;
}
cleaned = true;
if (frame && frame.parentNode) {
frame.parentNode.removeChild(frame);
}
window.removeEventListener('afterprint', cleanupPrintFrame);
}
window.addEventListener('afterprint', cleanupPrintFrame);
setTimeout(cleanupPrintFrame, 300000);
}
window.addEventListener('message', function(event) {
if (!event.data || event.data.type !== 'fastreport-print-finished') {
return;
}
var frame = document.getElementById(event.data.frameId);
if (frame && frame.parentNode) {
frame.parentNode.removeChild(frame);
}
});
</script>
</body>
</html>
@@ -1,5 +1,8 @@
using BLL;
using Model;
using System;
using System.Data;
using System.IO;
using System.Text;
namespace FineUIPro.Web.CLGL
@@ -87,6 +90,48 @@ namespace FineUIPro.Web.CLGL
this.Grid1.PageSize = Convert.ToInt32(this.ddlPageSize.SelectedValue);
this.BindGrid();
}
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "btnBarCodePrint")
{
PrintInputBarCode(e.RowID);
}
}
private void PrintInputBarCode(string Id)
{
if (string.IsNullOrEmpty(Id))
{
ShowNotify("请选择要打印的项", MessageBoxIcon.Warning);
return;
}
BLL.FastReportService.ResetData();
var MaterialCode=TwMaterialstockService.GetTw_MaterialStockById(Id).PipeLineMatCode;
var list = TwInputdetailBarCodeService.GetListData(MaterialCode);
if (list == null || list.Count == 0)
{
ShowNotify("未找到入库条码明细,请确认已生成入库单并已创建条码明细表。", MessageBoxIcon.Warning);
return;
}
DataTable table = LINQToDataTable(list);
if (table != null)
{
table.TableName = "Table1";
}
BLL.FastReportService.AddFastreportTable(table);
string rootPath = Server.MapPath("~/");
string initTemplatePath = "File\\Fastreport\\材料入库条码.frx";
if (File.Exists(rootPath + initTemplatePath))
{
//PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("~/Controls/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
string printUrl = ResolveUrl(BLL.FastReportService.ExportReport(rootPath + initTemplatePath));
PageContext.RegisterStartupScript(String.Format("printByHiddenFrame('{0}');", printUrl));
}
}
#endregion
#region 数据编辑事件
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="06/25/2026 23:25:00" ReportInfo.Modified="06/26/2026 00:34:19" ReportInfo.CreatorVersion="2017.1.16.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="06/25/2026 23:25:00" ReportInfo.Modified="07/07/2026 10:30:48" ReportInfo.CreatorVersion="2017.1.16.0">
<Dictionary>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaXj7MTwVWd+W15ZHXWbvUTygn/8kT7Dd8PAtwcQdvSWlUEyCU1xPvJPbQKwTsqQwLM+O2fcBJVGvSTxsXNEsa1vy5JNdjQE5XXU2qh41PMt4c4Lp/j2o5C6htb8mS4/JfQOgej7CCf0JujCt3dJ+YxXYKSV//QcC9LrMGTmFR+/+"/>
<MsSqlDataConnection Name="Connection" ConnectionString="rijcmlqvJIqZbrmqGn7L0P56UFhaXj7MTwVWd+W15ZHXWbvUTygn/8kT7Dd8PAtwcQdvSWlUEyCU1xPvJPbQKwTsqQwLM+O2fcBJVGvSTxsXNEsa1vy5JNdjQE5XXU2qh41PMt4c4Lp/j2o5C6htb8mS4/JfQOgej7CCf0JujCt3dJ+YxVxIWh8eIZhXk6qeqDkTaXS"/>
<TableDataSource Name="Table1" ReferenceName="Table1" DataType="System.Int32" Enabled="true">
<Column Name="PipelineCode" DataType="System.String"/>
<Column Name="SegmentCode" DataType="System.String"/>
@@ -28,84 +28,84 @@
</Dictionary>
<ReportPage Name="Page1" PaperWidth="100" PaperHeight="65" LeftMargin="0" TopMargin="0" RightMargin="0" BottomMargin="0" MirrorMargins="true">
<PageHeaderBand Name="PageHeader1" Width="378"/>
<DataBand Name="Data1" Top="2.5" Width="378" Height="241.89" DataSource="Table1" Columns.Count="1">
<TableObject Name="Table2" Left="9.45" Top="9.45" Width="358.85" Height="219.83" Border.Lines="All">
<TableColumn Name="Column1" Width="73.07"/>
<TableColumn Name="Column2" Width="78.55"/>
<TableColumn Name="Column3" Width="69.1"/>
<TableColumn Name="Column4" Width="69.1"/>
<TableColumn Name="Column5" Width="69.03"/>
<DataBand Name="Data1" Top="1.85" Width="378" Height="241.89" DataSource="Table1" Columns.Count="1">
<TableObject Name="Table2" Left="9.45" Top="9.45" Width="359.1" Height="219.83" Border.Lines="All">
<TableColumn Name="Column1" Width="85.05"/>
<TableColumn Name="Column2" Width="73.71"/>
<TableColumn Name="Column3" Width="77.49"/>
<TableColumn Name="Column4" Width="32.13"/>
<TableColumn Name="Column5" Width="90.72"/>
<TableRow Name="Row1" Height="20.01">
<TableCell Name="Cell1" Border.Lines="All" Text="管线号/ISO NO." HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell2" Border.Lines="All" Text="[Table1.PipelineCode]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="3"/>
<TableCell Name="Cell3" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell4" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt"/>
<TableCell Name="Cell5" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 10pt" RowSpan="4">
<BarcodeObject Name="Barcode1" Left="1.89" Top="3.78" Width="66.15" Height="66.15" AutoSize="false" Text="https://sggl.sedin.com.cn/StaticPage/HJGL/index.html?id=[Table1.WeldJointId]&amp;weldjoint=1" ShowText="false" AllowExpressions="true" Barcode="QR Code" Barcode.ErrorCorrection="L" Barcode.Encoding="UTF8" Barcode.QuietZone="true"/>
<TableCell Name="Cell1" Border.Lines="All" Text="管线号/ISO NO." HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell2" Border.Lines="All" Text="[Table1.PipelineCode]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="3"/>
<TableCell Name="Cell3" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell4" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell5" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" RowSpan="4">
<BarcodeObject Name="Barcode1" Left="1.89" Top="3.78" Width="83.16" Height="75.6" AutoSize="false" Text="https://sggl.sedin.com.cn/StaticPage/HJGL/index.html?id=[Table1.WeldJointId]&amp;weldjoint=1" ShowText="false" AllowExpressions="true" Barcode="QR Code" Barcode.ErrorCorrection="L" Barcode.Encoding="UTF8" Barcode.QuietZone="true"/>
</TableCell>
</TableRow>
<TableRow Name="Row2" Height="20.01">
<TableCell Name="Cell7" Border.Lines="All" Text="管段号/SP NO." HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell8" Border.Lines="All" Text="[Table1.SegmentCode]" HorzAlign="Center" VertAlign="Center" Font="宋体, 5pt"/>
<TableCell Name="Cell52" Border.Lines="All" Text="焊口号/WJ NO." HorzAlign="Center" VertAlign="Center" Font="宋体, 5pt"/>
<TableCell Name="Cell53" Border.Lines="All" Text="[Table1.WeldJointNo]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell11" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell7" Border.Lines="All" Text="管段号/SP NO." HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell8" Border.Lines="All" Text="[Table1.SegmentCode]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell52" Border.Lines="All" Text="焊口号/WJ NO." HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell53" Border.Lines="All" Text="[Table1.WeldJointNo]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell11" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row3" Height="20.01">
<TableCell Name="Cell12" Border.Lines="All" Text="材 质/MAT" HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell13" Border.Lines="All" Text="[Table1.Material1Code]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell14" Border.Lines="All" Text="[Table1.Material2Code]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell15" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell16" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell12" Border.Lines="All" Text="材 质/MAT" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell13" Border.Lines="All" Text="[Table1.Material1Code] / [Table1.Material2Code]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 6pt, style=Bold" ColSpan="3"/>
<TableCell Name="Cell14" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell15" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt"/>
<TableCell Name="Cell16" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row4" Height="20.01">
<TableCell Name="Cell17" Border.Lines="All" Text="规 格/SPE" HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell18" Border.Lines="All" Text="[Table1.Spec]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell60" Border.Lines="All" Text="设计温度/DT" HorzAlign="Center" VertAlign="Center" Font="宋体, 5pt"/>
<TableCell Name="Cell61" Border.Lines="All" Text="[Table1.DesignTemperature]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell21" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell17" Border.Lines="All" Text="规 格/SPE" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell18" Border.Lines="All" Text="[Table1.Spec]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell60" Border.Lines="All" Text="设计温度/DT" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell61" Border.Lines="All" Text="[Table1.DesignTemperature]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell21" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row5" Height="20.01">
<TableCell Name="Cell22" Border.Lines="All" Text="物料代码/CODE" HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell23" Border.Lines="All" Text="[Table1.MaterialCode1]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell24" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell25" Border.Lines="All" Text="[Table1.MaterialCode2]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell26" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell22" Border.Lines="All" Text="物料代码/CODE" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell23" Border.Lines="All" Text="[Table1.MaterialCode1]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell24" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell25" Border.Lines="All" Text="[Table1.MaterialCode2]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell26" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row6" Height="20.01">
<TableCell Name="Cell27" Border.Lines="All" Text="炉 号/H. No." HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell28" Border.Lines="All" Text="[Table1.HeatNo1]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell29" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell30" Border.Lines="All" Text="[Table1.HeatNo2]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell31" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell27" Border.Lines="All" Text="炉 号/H. No." HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell28" Border.Lines="All" Text="[Table1.HeatNo1]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell29" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell30" Border.Lines="All" Text="[Table1.HeatNo2]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell31" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row7" Height="30.3">
<TableCell Name="Cell32" Border.Lines="All" Text="批 号/Lot No." HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell33" Border.Lines="All" Text="[Table1.BatchNo1]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell34" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell35" Border.Lines="All" Text="[Table1.BatchNo2]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell36" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableRow Name="Row7" Height="20.85">
<TableCell Name="Cell32" Border.Lines="All" Text="批 号/Lot No." HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell33" Border.Lines="All" Text="[Table1.BatchNo1]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell34" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell35" Border.Lines="All" Text="[Table1.BatchNo2]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell36" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row8" Height="20.01">
<TableCell Name="Cell37" Border.Lines="All" Text="焊工号/Welder NO." HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell38" Border.Lines="All" Text="[Table1.WelderCode]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell54" Border.Lines="All" Text="焊接日期/WELD DATE" HorzAlign="Center" VertAlign="Center" Font="宋体, 5pt"/>
<TableCell Name="Cell57" Border.Lines="All" Text="[Table1.WeldingDate]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell41" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableRow Name="Row8" Height="29.46">
<TableCell Name="Cell37" Border.Lines="All" Text="焊工号/Welder NO." HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell38" Border.Lines="All" Text="[Table1.WelderCode]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell54" Border.Lines="All" Text="焊接日期/WELD DATE" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell57" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell41" Border.Lines="All" Text="[Table1.WeldingDate]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row9" Height="20.01">
<TableCell Name="Cell42" Border.Lines="All" Text="焊接检查/QC" HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell43" Border.Lines="All" Text="[Table1.WeldCheck]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell55" Border.Lines="All" Text="检查日期/QC DATE" HorzAlign="Center" VertAlign="Center" Font="宋体, 5pt"/>
<TableCell Name="Cell58" Border.Lines="All" Text="[Table1.CheckDate]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell46" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell42" Border.Lines="All" Text="焊接检查/QC" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell43" Border.Lines="All" Text="员欢哲" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell55" Border.Lines="All" Text="检查日期/QC DATE" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell58" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell46" Border.Lines="All" Text="[Table1.CheckDate]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
<TableRow Name="Row10" Height="29.45">
<TableCell Name="Cell47" Border.Lines="All" Text="管道清洁度检查/QC" HorzAlign="Center" VertAlign="Center" Font="黑体, 5pt"/>
<TableCell Name="Cell48" Border.Lines="All" Text="[Table1.CleanCheck]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell56" Border.Lines="All" Text="检查日期/QC DATE" HorzAlign="Center" VertAlign="Center" Font="宋体, 5pt"/>
<TableCell Name="Cell59" Border.Lines="All" Text="[Table1.CleanCheckDate]" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt" ColSpan="2"/>
<TableCell Name="Cell51" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="宋体, 7pt"/>
<TableCell Name="Cell47" Border.Lines="All" Text="管道清洁度检查/QC" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell48" Border.Lines="All" Text="员欢哲" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell56" Border.Lines="All" Text="检查日期/QC DATE" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold" ColSpan="2"/>
<TableCell Name="Cell59" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
<TableCell Name="Cell51" Border.Lines="All" Text="[Table1.CleanCheckDate]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 7pt, style=Bold"/>
</TableRow>
</TableObject>
</DataBand>
+33 -1
View File
@@ -367,6 +367,9 @@
<Content Include="CLGL\OutputMasterEdit.aspx" />
<Content Include="CLGL\AntiCorrosionTrust.aspx" />
<Content Include="CLGL\AntiCorrosionTrustEdit.aspx" />
<Content Include="CLGL\AntiCorrosionCheckRecord.aspx" />
<Content Include="CLGL\AntiCorrosionCheckRecordEdit.aspx" />
<Content Include="CLGL\AntiCorrosionCheckRecordView.aspx" />
<Content Include="File\Excel\DataOut\防腐委托单.xlsx" />
<Content Include="File\Fastreport\防腐委托单.frx" />
<Content Include="common\main2.aspx" />
@@ -1580,6 +1583,7 @@
<Content Include="HJGL\DataImport\DrawingRecognitionContent.aspx" />
<Content Include="HJGL\DataImport\DrawingRecognitionContentEdit.aspx" />
<Content Include="HJGL\DataImport\MaterialInformation.aspx" />
<Content Include="HJGL\DataImport\MaterialInformationEdit.aspx" />
<Content Include="HJGL\DataImport\MaterialStock.aspx" />
<Content Include="HJGL\DataImport\PipelineGrid.aspx" />
<Content Include="HJGL\DataImport\PipeLineInAuto.aspx" />
@@ -8325,6 +8329,27 @@
<Compile Include="CLGL\AntiCorrosionTrust.aspx.designer.cs">
<DependentUpon>AntiCorrosionTrust.aspx</DependentUpon>
</Compile>
<Compile Include="CLGL\AntiCorrosionCheckRecord.aspx.cs">
<DependentUpon>AntiCorrosionCheckRecord.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="CLGL\AntiCorrosionCheckRecord.aspx.designer.cs">
<DependentUpon>AntiCorrosionCheckRecord.aspx</DependentUpon>
</Compile>
<Compile Include="CLGL\AntiCorrosionCheckRecordEdit.aspx.cs">
<DependentUpon>AntiCorrosionCheckRecordEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="CLGL\AntiCorrosionCheckRecordEdit.aspx.designer.cs">
<DependentUpon>AntiCorrosionCheckRecordEdit.aspx</DependentUpon>
</Compile>
<Compile Include="CLGL\AntiCorrosionCheckRecordView.aspx.cs">
<DependentUpon>AntiCorrosionCheckRecordView.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="CLGL\AntiCorrosionCheckRecordView.aspx.designer.cs">
<DependentUpon>AntiCorrosionCheckRecordView.aspx</DependentUpon>
</Compile>
<Compile Include="CLGL\AntiCorrosionTrustEdit.aspx.cs">
<DependentUpon>AntiCorrosionTrustEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -10572,6 +10597,13 @@
<Compile Include="HJGL\DataImport\MaterialInformation.aspx.designer.cs">
<DependentUpon>MaterialInformation.aspx</DependentUpon>
</Compile>
<Compile Include="HJGL\DataImport\MaterialInformationEdit.aspx.cs">
<DependentUpon>MaterialInformationEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="HJGL\DataImport\MaterialInformationEdit.aspx.designer.cs">
<DependentUpon>MaterialInformationEdit.aspx</DependentUpon>
</Compile>
<Compile Include="HJGL\DataImport\MaterialStock.aspx.cs">
<DependentUpon>MaterialStock.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -17266,4 +17298,4 @@
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>
@@ -324,18 +324,27 @@
IsModal="true" Width="800px" Height="560px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnEditMatGrid1" OnClick="btnEditMatGrid1_Click" EnablePostBack="true"
runat="server" Text="编辑" Icon="Pencil">
</f:MenuButton>
<f:MenuButton ID="btnDelMatGrid1" OnClick="btnDelMatGrid1_Click" EnablePostBack="true"
ConfirmText="删除选中行?" ConfirmTarget="Top" runat="server"
Text="删除" Icon="Delete">
</f:MenuButton>
</f:Menu>
<f:Menu ID="Menu2" runat="server">
<f:MenuButton ID="btnEditMatGrid2" OnClick="btnEditMatGrid2_Click" EnablePostBack="true"
runat="server" Text="编辑" Icon="Pencil">
</f:MenuButton>
<f:MenuButton ID="btnDelMat" OnClick="btnDelMatGrid2_Click" EnablePostBack="true"
ConfirmText="删除选中行?" ConfirmTarget="Top" runat="server"
Text="删除" Icon="Delete">
</f:MenuButton>
</f:Menu>
<f:Menu ID="Menu3" runat="server">
<f:MenuButton ID="btnEditMatGrid3" OnClick="btnEditMatGrid3_Click" EnablePostBack="true"
runat="server" Text="编辑" Icon="Pencil">
</f:MenuButton>
<f:MenuButton ID="btnDelMat2" OnClick="btnDelMatGrid3_Click" EnablePostBack="true"
ConfirmText="删除选中行?" ConfirmTarget="Top" runat="server"
Text="删除" Icon="Delete">
@@ -346,18 +355,25 @@
var menuID1 = '<%= Menu1.ClientID %>';
var menuID2 = '<%= Menu2.ClientID %>';
var menuID3 = '<%= Menu3.ClientID %>';
var gridID1 = '<%= Grid1.ClientID %>';
var gridID2 = '<%= Grid2.ClientID %>';
var gridID3 = '<%= Grid3.ClientID %>';
function selectRowAndShowMenu(gridID, menuID, rowId) {
if (rowId) {
F(gridID).selectRow(rowId);
}
F(menuID).show();
return false;
}
// 返回false,来阻止浏览器右键菜单
function onRowContextMenu3(event, rowId) {
F(menuID3).show(); //showAt(event.pageX, event.pageY);
return false;
return selectRowAndShowMenu(gridID3, menuID3, rowId);
}
function onRowContextMenu2(event, rowId) {
F(menuID2).show(); //showAt(event.pageX, event.pageY);
return false;
return selectRowAndShowMenu(gridID2, menuID2, rowId);
}
function onRowContextMenu1(event, rowId) {
F(menuID1).show(); //showAt(event.pageX, event.pageY);
return false;
return selectRowAndShowMenu(gridID1, menuID1, rowId);
}
function onGridDataLoad(event) {
this.mergeColumns(['PrefabricatedComponents']);
@@ -545,7 +545,57 @@ namespace FineUIPro.Web.HJGL.DataImport
}
}
#region 右键菜单删除
#region 右键菜单维护
/// <summary>
/// 维护工厂预制材料编码。
/// </summary>
protected void btnEditMatGrid1_Click(object sender, EventArgs e)
{
OpenMaterialCodeEdit(Grid1);
}
/// <summary>
/// 维护现场施工材料编码。
/// </summary>
protected void btnEditMatGrid2_Click(object sender, EventArgs e)
{
OpenMaterialCodeEdit(Grid2);
}
/// <summary>
/// 维护预制散件材料编码。
/// </summary>
protected void btnEditMatGrid3_Click(object sender, EventArgs e)
{
OpenMaterialCodeEdit(Grid3);
}
/// <summary>
/// 打开材料编码维护窗口,按管线材料ID只维护 HJGL_PipeLineMat.MaterialCode2。
/// </summary>
private void OpenMaterialCodeEdit(Grid grid)
{
if (!CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.PersonId, Const.HJGL_WeldJointMenuId, Const.BtnModify))
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
if (grid.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
if (grid.SelectedRowIndexArray.Length > 1)
{
Alert.ShowInTop("一次只能编辑一条记录", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window5.GetShowReference(String.Format("MaterialInformationEdit.aspx?PipeLineMatId={0}", grid.SelectedRowID), "维护材料编码", 500, 180));
}
protected void btnDelMatGrid2_Click(object sender, EventArgs e)
@@ -735,7 +785,9 @@ namespace FineUIPro.Web.HJGL.DataImport
protected void Window5_Close(object sender, WindowCloseEventArgs e)
{
// this.BindGrid1(this.tvControlItem.SelectedNodeID);
this.BindGrid1(this.tvControlItem.SelectedNodeID, this.hdUnitWorkId.Text);
this.BindGrid2(this.tvControlItem.SelectedNodeID, this.hdUnitWorkId.Text);
this.BindGrid3(this.tvControlItem.SelectedNodeID, this.hdUnitWorkId.Text);
}
/// <summary>
@@ -338,6 +338,15 @@ namespace FineUIPro.Web.HJGL.DataImport
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnEditMatGrid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnEditMatGrid1;
/// <summary>
/// btnDelMatGrid1 控件。
/// </summary>
@@ -356,6 +365,15 @@ namespace FineUIPro.Web.HJGL.DataImport
/// </remarks>
protected global::FineUIPro.Menu Menu2;
/// <summary>
/// btnEditMatGrid2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnEditMatGrid2;
/// <summary>
/// btnDelMat 控件。
/// </summary>
@@ -374,6 +392,15 @@ namespace FineUIPro.Web.HJGL.DataImport
/// </remarks>
protected global::FineUIPro.Menu Menu3;
/// <summary>
/// btnEditMatGrid3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnEditMatGrid3;
/// <summary>
/// btnDelMat2 控件。
/// </summary>
@@ -0,0 +1,41 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MaterialInformationEdit.aspx.cs" Inherits="FineUIPro.Web.HJGL.DataImport.MaterialInformationEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>维护材料编码</title>
<base target="_self" />
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtMaterialCode" runat="server" Label="材料编码"
MaxLength="50" FocusOnPageLoad="true" LabelWidth="100px">
</f:TextBox>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:Button ID="btnSave" Icon="SystemSave" Text="保存" runat="server"
ValidateForms="SimpleForm1" OnClick="btnSave_Click">
</f:Button>
<f:Button ID="btnClose" EnablePostBack="false" Text="关闭"
runat="server" Icon="SystemClose">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,57 @@
using BLL;
using System;
namespace FineUIPro.Web.HJGL.DataImport
{
public partial class MaterialInformationEdit : PageBase
{
/// <summary>
/// 管线材料ID。
/// </summary>
public string PipeLineMatId
{
get
{
return (string)ViewState["PipeLineMatId"];
}
set
{
ViewState["PipeLineMatId"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.PipeLineMatId = Request.Params["PipeLineMatId"];
Model.HJGL_PipeLineMat pipeLineMat = PipelineMatService.GetPipeLineMat(this.PipeLineMatId);
if (pipeLineMat == null)
{
Alert.ShowInTop("未找到材料记录!", MessageBoxIcon.Warning);
return;
}
this.txtMaterialCode.Text = pipeLineMat.MaterialCode2;
}
}
/// <summary>
/// 保存材料编码。
/// </summary>
protected void btnSave_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.PipeLineMatId))
{
Alert.ShowInTop("未找到材料记录!", MessageBoxIcon.Warning);
return;
}
PipelineMatService.UpdateMaterialCode2(this.PipeLineMatId, this.txtMaterialCode.Text.Trim());
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
}
@@ -0,0 +1,80 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HJGL.DataImport
{
public partial class MaterialInformationEdit
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// txtMaterialCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtMaterialCode;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// btnClose 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClose;
}
}
@@ -947,8 +947,8 @@ namespace FineUIPro.Web.HJGL.InfoQuery
HJGL_MaterialCodeLib lib2 = GetMaterialLib(row2, libsByMaterialCode, libsByCode);
DataRow dr = tb.NewRow();
dr["PipelineCode"] = joint.PipelineCode;
dr["SegmentCode"] = preCode;
dr["PipelineCode"] = joint.SingleNumber;
dr["SegmentCode"] = joint.FlowingSection;
dr["WeldJointNo"] = weldJointNo;
dr["MaterialText"] = string.IsNullOrEmpty(joint.Material1Code) ? joint.Material2Code : joint.Material1Code;
dr["Spec"] = joint.Specification;
@@ -962,9 +962,9 @@ namespace FineUIPro.Web.HJGL.InfoQuery
dr["WelderCode"] = string.IsNullOrEmpty(joint.WelderCode) ? (string.IsNullOrEmpty(joint.BackingWelderCode) ? joint.CoverWelderCode : joint.BackingWelderCode) : joint.WelderCode;
dr["WeldingDate"] = joint.WeldingDate;
dr["WeldCheck"] = joint.CheckResult;
dr["CheckDate"] = joint.AuditDate == null ? string.Empty : joint.AuditDate.Value.ToString("yyyy-MM-dd");
dr["CheckDate"] = DateTime.Parse(joint.WeldingDate).AddDays(1).ToString("yyyy-MM-dd");
dr["CleanCheck"] = joint.IsHotProessStr;
dr["CleanCheckDate"] = joint.AuditDate2 == null ? string.Empty : joint.AuditDate2.Value.ToString("yyyy-MM-dd");
dr["CleanCheckDate"] = DateTime.Parse(joint.WeldingDate).AddDays(1).ToString("yyyy-MM-dd");
dr["WeldJointId"] = joint.WeldJointId;
dr["Material1Code"] = joint.Material1Code;
dr["Material2Code"] = joint.Material2Code;
@@ -44,6 +44,15 @@
<f:RenderField Width="140px" ColumnID="WeldJointCode" DataField="WeldJointCode" FieldType="String"
HeaderText="焊口号" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="CuttingLength" DataField="CuttingLength" FieldType="Double"
HeaderText="下料长度" HeaderTextAlign="Center" TextAlign="Right">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="GrooveForm" DataField="GrooveForm" FieldType="String"
HeaderText="坡口形式" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="GrooveAngle" DataField="GrooveAngle" FieldType="Double"
HeaderText="坡口角度" HeaderTextAlign="Center" TextAlign="Right">
</f:RenderField>
<f:CheckBoxField Width="150px" ColumnID="IsMaterialCodeBatchNoAccurate" DataField="IsMaterialCodeBatchNoAccurate"
HeaderText="材料准确" HeaderTextAlign="Center" TextAlign="Center" RenderAsStaticField="true">
</f:CheckBoxField>
@@ -56,9 +65,21 @@
<f:RenderField Width="170px" ColumnID="CheckTime" DataField="CheckTime" FieldType="Date"
RendererArgument="yyyy-MM-dd HH:mm" HeaderText="检查时间" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:CheckBoxField Width="120px" ColumnID="IsQualified" DataField="IsQualified"
HeaderText="是否合格" HeaderTextAlign="Center" TextAlign="Center" RenderAsStaticField="true">
</f:CheckBoxField>
<f:RenderField Width="120px" ColumnID="CheckResult" DataField="CheckResult" FieldType="String"
HeaderText="检查结果" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="CreateTime" DataField="CreateTime" FieldType="Date"
RendererArgument="yyyy-MM-dd HH:mm" HeaderText="创建时间" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="UnqualifiedReason" DataField="UnqualifiedReason" FieldType="String"
HeaderText="不合格原因" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="RectifyRequirement" DataField="RectifyRequirement" FieldType="String"
HeaderText="整改要求" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="Remark" DataField="Remark" FieldType="String"
HeaderText="备注" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
</Columns>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
@@ -20,6 +20,24 @@
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="numCuttingLength" runat="server" Label="下料长度" LabelWidth="170px" DecimalPrecision="2">
</f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextBox ID="txtGrooveForm" runat="server" Label="坡口形式" LabelWidth="170px">
</f:TextBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="numGrooveAngle" runat="server" Label="坡口角度" LabelWidth="170px" DecimalPrecision="2">
</f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:CheckBox ID="chkMaterialCodeBatchNo" runat="server" Label="材料编码及炉批号校验"
@@ -34,6 +52,22 @@
</f:CheckBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="ddlCheckResult" runat="server" Label="检查结果" LabelWidth="170px" Required="true"
ShowRedStar="true">
<f:ListItem Text="合格" Value="合格" />
<f:ListItem Text="不合格" Value="不合格" />
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCheckPerson" runat="server" Label="检查人" LabelWidth="170px" Required="true"
ShowRedStar="true" EnableEdit="true">
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="dpCheckTime" runat="server" Label="检查时间" LabelWidth="170px"
@@ -41,6 +75,18 @@
</f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtUnqualifiedReason" runat="server" Label="不合格原因" LabelWidth="170px">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRectifyRequirement" runat="server" Label="整改要求" LabelWidth="170px">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" MaxLength="500" LabelWidth="170px">
@@ -19,12 +19,15 @@ namespace FineUIPro.Web.HJGL.PreWeld
btnClose.OnClientClick = ActiveWindow.GetHideReference();
CuttingCheckId = Request.Params["CuttingCheckId"];
BindWeldJoint();
BindCheckPerson();
ddlCheckResult.SelectedValue = "合格";
if (!string.IsNullOrEmpty(CuttingCheckId))
{
BindData();
}
else
{
drpCheckPerson.SelectedValue = CurrUser.PersonId;
dpCheckTime.SelectedDate = DateTime.Now;
}
}
@@ -49,6 +52,11 @@ namespace FineUIPro.Web.HJGL.PreWeld
}
}
private void BindCheckPerson()
{
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(drpCheckPerson, CurrUser.LoginProjectId, null, null, true);
}
private void BindData()
{
var model = PreWeldInspectionService.GetCuttingCheckById(CuttingCheckId);
@@ -58,9 +66,22 @@ namespace FineUIPro.Web.HJGL.PreWeld
}
drpWeldJoint.SelectedValue = model.WeldJointId;
numCuttingLength.Text = model.CuttingLength.HasValue ? model.CuttingLength.Value.ToString() : string.Empty;
txtGrooveForm.Text = model.GrooveForm;
numGrooveAngle.Text = model.GrooveAngle.HasValue ? model.GrooveAngle.Value.ToString() : string.Empty;
chkMaterialCodeBatchNo.Checked = model.IsMaterialCodeBatchNoAccurate;
chkMaterialQuantity.Checked = model.IsMaterialQuantityAccurate;
if (!string.IsNullOrEmpty(model.CheckResult))
{
ddlCheckResult.SelectedValue = model.CheckResult;
}
if (!string.IsNullOrEmpty(model.CheckPerson))
{
drpCheckPerson.SelectedValue = model.CheckPerson;
}
dpCheckTime.SelectedDate = model.CheckTime;
txtUnqualifiedReason.Text = model.UnqualifiedReason;
txtRectifyRequirement.Text = model.RectifyRequirement;
txtRemark.Text = model.Remark;
}
@@ -72,32 +93,33 @@ namespace FineUIPro.Web.HJGL.PreWeld
return;
}
var item = new Model.PreWeldCuttingCheckItem
var item = new Model.PreWeldCuttingCheckInput
{
CuttingCheckId = CuttingCheckId,
ProjectId = CurrUser.LoginProjectId,
WeldJointId = drpWeldJoint.SelectedValue,
CuttingLength = string.IsNullOrWhiteSpace(numCuttingLength.Text) ? (decimal?)null : Convert.ToDecimal(numCuttingLength.Text),
GrooveForm = txtGrooveForm.Text.Trim(),
GrooveAngle = string.IsNullOrWhiteSpace(numGrooveAngle.Text) ? (decimal?)null : Convert.ToDecimal(numGrooveAngle.Text),
IsMaterialCodeBatchNoAccurate = chkMaterialCodeBatchNo.Checked,
IsMaterialQuantityAccurate = chkMaterialQuantity.Checked,
CheckPerson = CurrUser.PersonId,
CheckResult = ddlCheckResult.SelectedValue,
CheckPerson = drpCheckPerson.SelectedValue,
CheckTime = dpCheckTime.SelectedDate ?? DateTime.Now,
CreateUser = CurrUser.PersonId,
UnqualifiedReason = txtUnqualifiedReason.Text.Trim(),
RectifyRequirement = txtRectifyRequirement.Text.Trim(),
Remark = txtRemark.Text.Trim()
};
APIPreWeldInspectionService.SaveCuttingCheck(item);
CuttingCheckId = APIPreWeldInspectionService.SaveCuttingCheck(item);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
string cuttingCheckId = CuttingCheckId;
if (string.IsNullOrEmpty(cuttingCheckId) && !string.IsNullOrEmpty(drpWeldJoint.SelectedValue))
{
var check = Funs.DB.HJGL_PreWeldCuttingCheck.FirstOrDefault(x => x.WeldJointId == drpWeldJoint.SelectedValue);
cuttingCheckId = check == null ? string.Empty : check.CuttingCheckId;
}
if (string.IsNullOrEmpty(cuttingCheckId))
if (string.IsNullOrEmpty(CuttingCheckId))
{
Alert.ShowInTop("请先保存下料抽检记录后再上传附件!", MessageBoxIcon.Warning);
return;
@@ -105,7 +127,7 @@ namespace FineUIPro.Web.HJGL.PreWeld
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
string.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/HJGL/PreWeld/CuttingCheck&menuId={1}&edit=1&type=-1",
cuttingCheckId, Const.HJGL_PreWeldCuttingCheckMenuId)));
CuttingCheckId, Const.HJGL_PreWeldCuttingCheckMenuId)));
}
}
}
@@ -50,6 +50,33 @@ namespace FineUIPro.Web.HJGL.PreWeld
/// </remarks>
protected global::FineUIPro.DropDownList drpWeldJoint;
/// <summary>
/// numCuttingLength 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox numCuttingLength;
/// <summary>
/// txtGrooveForm 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtGrooveForm;
/// <summary>
/// numGrooveAngle 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox numGrooveAngle;
/// <summary>
/// chkMaterialCodeBatchNo 控件。
/// </summary>
@@ -68,6 +95,24 @@ namespace FineUIPro.Web.HJGL.PreWeld
/// </remarks>
protected global::FineUIPro.CheckBox chkMaterialQuantity;
/// <summary>
/// ddlCheckResult 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlCheckResult;
/// <summary>
/// drpCheckPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCheckPerson;
/// <summary>
/// dpCheckTime 控件。
/// </summary>
@@ -77,6 +122,24 @@ namespace FineUIPro.Web.HJGL.PreWeld
/// </remarks>
protected global::FineUIPro.DatePicker dpCheckTime;
/// <summary>
/// txtUnqualifiedReason 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtUnqualifiedReason;
/// <summary>
/// txtRectifyRequirement 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRectifyRequirement;
/// <summary>
/// txtRemark 控件。
/// </summary>
@@ -13,8 +13,8 @@
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="组对抽检列表台账"
runat="server" BoxFlex="1" EnableColumnLines="true" DataKeyNames="WeldJointId"
DataIDField="WeldJointId" AllowPaging="true" IsDatabasePaging="true" PageSize="15"
runat="server" BoxFlex="1" EnableColumnLines="true" DataKeyNames="FitupCheckId"
DataIDField="FitupCheckId" AllowPaging="true" IsDatabasePaging="true" PageSize="15"
OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true"
OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
<Toolbars>
@@ -59,6 +59,36 @@
<f:RenderField Width="120px" ColumnID="Misalignment" DataField="Misalignment" FieldType="Double"
HeaderText="错边量" HeaderTextAlign="Center" TextAlign="Right">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="WeldReinforcement" DataField="WeldReinforcement" FieldType="Double"
HeaderText="焊缝余高" HeaderTextAlign="Center" TextAlign="Right">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="WeldHeight" DataField="WeldHeight" FieldType="Double"
HeaderText="焊缝高度" HeaderTextAlign="Center" TextAlign="Right">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="WeldWidth" DataField="WeldWidth" FieldType="Double"
HeaderText="焊缝宽度" HeaderTextAlign="Center" TextAlign="Right">
</f:RenderField>
<f:RenderField Width="180px" ColumnID="SurfaceDefect" DataField="SurfaceDefect" FieldType="String"
HeaderText="表面缺陷" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="CheckResult" DataField="CheckResult" FieldType="String"
HeaderText="检查结果" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" ColumnID="CheckPersonName" DataField="CheckPersonName" FieldType="String"
HeaderText="检查人" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="170px" ColumnID="CheckTime" DataField="CheckTime" FieldType="Date"
RendererArgument="yyyy-MM-dd HH:mm" HeaderText="检查时间" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="UnqualifiedReason" DataField="UnqualifiedReason" FieldType="String"
HeaderText="不合格原因" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="RectifyRequirement" DataField="RectifyRequirement" FieldType="String"
HeaderText="整改要求" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="220px" ColumnID="Remark" DataField="Remark" FieldType="String"
HeaderText="备注" HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
</Columns>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
@@ -67,7 +67,7 @@ namespace FineUIPro.Web.HJGL.PreWeld
}
if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId, Const.HJGL_PreWeldFitupCheckMenuId, Const.BtnModify))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("FitupCheckEdit.aspx?WeldJointId={0}", Grid1.SelectedRowID)));
PageContext.RegisterStartupScript(Window1.GetShowReference(string.Format("FitupCheckEdit.aspx?FitupCheckId={0}", Grid1.SelectedRowID)));
}
}
}
@@ -51,6 +51,46 @@
</f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="numWeldReinforcement" runat="server" Label="焊缝余高" LabelWidth="170px" DecimalPrecision="2">
</f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="numWeldHeight" runat="server" Label="焊缝高度" LabelWidth="170px" DecimalPrecision="2">
</f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:NumberBox ID="numWeldWidth" runat="server" Label="焊缝宽度" LabelWidth="170px" DecimalPrecision="2">
</f:NumberBox>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtSurfaceDefect" runat="server" Label="表面缺陷" LabelWidth="170px">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="ddlCheckResult" runat="server" Label="检查结果" LabelWidth="170px" Required="true"
ShowRedStar="true">
<f:ListItem Text="合格" Value="合格" />
<f:ListItem Text="不合格" Value="不合格" />
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpCheckPerson" runat="server" Label="检查人" LabelWidth="170px" Required="true"
ShowRedStar="true" EnableEdit="true">
</f:DropDownList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker ID="dpCheckTime" runat="server" Label="检查时间" LabelWidth="170px"
@@ -58,6 +98,18 @@
</f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtUnqualifiedReason" runat="server" Label="不合格原因" LabelWidth="170px">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRectifyRequirement" runat="server" Label="整改要求" LabelWidth="170px">
</f:TextArea>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtRemark" runat="server" Label="备注" MaxLength="500" LabelWidth="170px">
@@ -6,10 +6,10 @@ namespace FineUIPro.Web.HJGL.PreWeld
{
public partial class FitupCheckEdit : PageBase
{
public string WeldJointId
public string FitupCheckId
{
get { return (string)ViewState["WeldJointId"]; }
set { ViewState["WeldJointId"] = value; }
get { return (string)ViewState["FitupCheckId"]; }
set { ViewState["FitupCheckId"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
@@ -17,15 +17,26 @@ namespace FineUIPro.Web.HJGL.PreWeld
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
WeldJointId = Request.Params["WeldJointId"];
FitupCheckId = Request.Params["FitupCheckId"];
var weldJointId = Request.Params["WeldJointId"];
BindWeldJoint();
BindGrooveType();
if (!string.IsNullOrEmpty(WeldJointId))
BindCheckPerson();
ddlCheckResult.SelectedValue = "合格";
if (!string.IsNullOrEmpty(FitupCheckId))
{
BindData();
}
else if (!string.IsNullOrEmpty(weldJointId))
{
drpWeldJoint.SelectedValue = weldJointId;
drpWeldJoint.Enabled = false;
drpCheckPerson.SelectedValue = CurrUser.PersonId;
dpCheckTime.SelectedDate = DateTime.Now;
}
else
{
drpCheckPerson.SelectedValue = CurrUser.PersonId;
dpCheckTime.SelectedDate = DateTime.Now;
}
}
@@ -50,6 +61,11 @@ namespace FineUIPro.Web.HJGL.PreWeld
}
}
private void BindCheckPerson()
{
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(drpCheckPerson, CurrUser.LoginProjectId, null, null, true);
}
private void BindGrooveType()
{
drpGrooveType.DataTextField = "BaseInfoName";
@@ -60,8 +76,12 @@ namespace FineUIPro.Web.HJGL.PreWeld
private void BindData()
{
var model = PreWeldInspectionService.GetFitupCheckByWeldJointId(WeldJointId);
var weldJoint = APIPreWeldInspectionService.GetPreWeldJointByWeldJointId(WeldJointId);
var model = PreWeldInspectionService.GetFitupCheckById(FitupCheckId);
if (model == null)
{
return;
}
var weldJoint = APIPreWeldInspectionService.GetPreWeldJointByWeldJointId(model.WeldJointId);
if (weldJoint != null)
{
drpWeldJoint.SelectedValue = weldJoint.WeldJointId;
@@ -97,7 +117,30 @@ namespace FineUIPro.Web.HJGL.PreWeld
{
numMisalignment.Text = model.Misalignment.Value.ToString();
}
if (model.WeldReinforcement.HasValue)
{
numWeldReinforcement.Text = model.WeldReinforcement.Value.ToString();
}
if (model.WeldHeight.HasValue)
{
numWeldHeight.Text = model.WeldHeight.Value.ToString();
}
if (model.WeldWidth.HasValue)
{
numWeldWidth.Text = model.WeldWidth.Value.ToString();
}
txtSurfaceDefect.Text = model.SurfaceDefect;
if (!string.IsNullOrEmpty(model.CheckResult))
{
ddlCheckResult.SelectedValue = model.CheckResult;
}
if (!string.IsNullOrEmpty(model.CheckPerson))
{
drpCheckPerson.SelectedValue = model.CheckPerson;
}
dpCheckTime.SelectedDate = model.CheckTime;
txtUnqualifiedReason.Text = model.UnqualifiedReason;
txtRectifyRequirement.Text = model.RectifyRequirement;
txtRemark.Text = model.Remark;
}
}
@@ -110,8 +153,9 @@ namespace FineUIPro.Web.HJGL.PreWeld
return;
}
var item = new Model.PreWeldFitupCheckItem
var item = new Model.PreWeldFitupCheckInput
{
FitupCheckId = FitupCheckId,
ProjectId = CurrUser.LoginProjectId,
WeldJointId = drpWeldJoint.SelectedValue,
GrooveTypeId = drpGrooveType.SelectedValue,
@@ -119,24 +163,27 @@ namespace FineUIPro.Web.HJGL.PreWeld
GrooveAngle = string.IsNullOrWhiteSpace(numGrooveAngle.Text) ? (decimal?)null : Convert.ToDecimal(numGrooveAngle.Text),
FitupGap = string.IsNullOrWhiteSpace(numFitupGap.Text) ? (decimal?)null : Convert.ToDecimal(numFitupGap.Text),
Misalignment = string.IsNullOrWhiteSpace(numMisalignment.Text) ? (decimal?)null : Convert.ToDecimal(numMisalignment.Text),
CheckPerson = CurrUser.PersonId,
WeldReinforcement = string.IsNullOrWhiteSpace(numWeldReinforcement.Text) ? (decimal?)null : Convert.ToDecimal(numWeldReinforcement.Text),
WeldHeight = string.IsNullOrWhiteSpace(numWeldHeight.Text) ? (decimal?)null : Convert.ToDecimal(numWeldHeight.Text),
WeldWidth = string.IsNullOrWhiteSpace(numWeldWidth.Text) ? (decimal?)null : Convert.ToDecimal(numWeldWidth.Text),
SurfaceDefect = txtSurfaceDefect.Text.Trim(),
CheckResult = ddlCheckResult.SelectedValue,
CheckPerson = drpCheckPerson.SelectedValue,
CheckTime = dpCheckTime.SelectedDate ?? DateTime.Now,
CreateUser = CurrUser.PersonId,
UnqualifiedReason = txtUnqualifiedReason.Text.Trim(),
RectifyRequirement = txtRectifyRequirement.Text.Trim(),
Remark = txtRemark.Text.Trim()
};
APIPreWeldInspectionService.SaveFitupCheck(item);
FitupCheckId = APIPreWeldInspectionService.SaveFitupCheck(item);
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
string weldJointId = drpWeldJoint.SelectedValue;
var check = string.IsNullOrEmpty(weldJointId)
? null
: Funs.DB.HJGL_PreWeldFitupCheck.FirstOrDefault(x => x.WeldJointId == weldJointId);
if (check == null)
if (string.IsNullOrEmpty(FitupCheckId))
{
Alert.ShowInTop("请先保存组对抽检记录后再上传附件!", MessageBoxIcon.Warning);
return;
@@ -144,7 +191,7 @@ namespace FineUIPro.Web.HJGL.PreWeld
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
string.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/HJGL/PreWeld/FitupCheck&menuId={1}&edit=1&type=-1",
check.FitupCheckId, Const.HJGL_PreWeldFitupCheckMenuId)));
FitupCheckId, Const.HJGL_PreWeldFitupCheckMenuId)));
}
}
}
@@ -95,6 +95,60 @@ namespace FineUIPro.Web.HJGL.PreWeld
/// </remarks>
protected global::FineUIPro.NumberBox numMisalignment;
/// <summary>
/// numWeldReinforcement 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox numWeldReinforcement;
/// <summary>
/// numWeldHeight 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox numWeldHeight;
/// <summary>
/// numWeldWidth 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.NumberBox numWeldWidth;
/// <summary>
/// txtSurfaceDefect 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtSurfaceDefect;
/// <summary>
/// ddlCheckResult 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlCheckResult;
/// <summary>
/// drpCheckPerson 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpCheckPerson;
/// <summary>
/// dpCheckTime 控件。
/// </summary>
@@ -104,6 +158,24 @@ namespace FineUIPro.Web.HJGL.PreWeld
/// </remarks>
protected global::FineUIPro.DatePicker dpCheckTime;
/// <summary>
/// txtUnqualifiedReason 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtUnqualifiedReason;
/// <summary>
/// txtRectifyRequirement 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtRectifyRequirement;
/// <summary>
/// txtRemark 控件。
/// </summary>
@@ -140,6 +140,10 @@
FieldType="String" HeaderText="材质" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PaintCode" DataField="PaintCode" SortField="PaintCode"
FieldType="String" HeaderText="防腐等级" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="FlowingSection" DataField="FlowingSection" SortField="FlowingSection"
FieldType="String" HeaderText="流水段" HeaderTextAlign="Center"
TextAlign="Left">
@@ -204,7 +204,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
// string result = string.Empty;
List<string> result = new List<string>();
//pds = BLL.Funs.FilterBlankLines(pds);
if (count < 28)
if (count < 32)
{
responeData.code = 0;
responeData.message = "导入Excel格式错误!Excel只有" + count.ToString().Trim() + "列";
@@ -224,6 +224,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
var getPurgeMethod = from x in db.Base_PurgeMethod select x;
var getMaterial = from x in db.Base_Material select x;
var getWeldType = from x in db.Base_WeldType select x;
var getPaintCodeDict = from x in db.Tw_PaintCodeDict where x.IsUsed select x;
//var getComponents = from x in Funs.DB.Base_Components where x.ProjeceId == this.CurrUser.LoginProjectId select x;
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(Request.Params["UnitWorkId"]);
@@ -254,6 +255,9 @@ namespace FineUIPro.Web.HJGL.WeldingManage
string col25 = Convert.ToString(pds[i].AA);
string col26 = Convert.ToString(pds[i].AB);
string col27 = Convert.ToString(pds[i].AC);
string col28 = Convert.ToString(pds[i].AD);
string col29 = Convert.ToString(pds[i].AE);
string col30 = Convert.ToString(pds[i].AF);
bool hasRequiredError = false;
Action<string> addRequiredError = colName =>
{
@@ -780,7 +784,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
result.Add("第" + (i + 1).ToString() + "行," + "焊口属性" + "," + "此项为必填项!" + "|");
}
string col28 = Convert.ToString(pds[i].AD);
if (!string.IsNullOrEmpty(col28))
{
if (col28.Trim() == "是")
@@ -790,12 +793,27 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
// 读取焊点坐标(AE列)
string col29 = Convert.ToString(pds[i].AE);
if (!string.IsNullOrEmpty(col29))
{
pipeline.WeldJointPoint = col29;
}
// 读取防腐等级(AF列),按字典精确匹配后保存字典ID
if (!string.IsNullOrEmpty(col30))
{
// AF列为非必填项,只有填写时才按防腐字典校验并回填字典ID
var paint = getPaintCodeDict.FirstOrDefault(x => !string.IsNullOrEmpty(x.PaintCode) && x.PaintCode.Contains(col30));
if (paint == null)
{
result.Add("第" + (i + 1).ToString() + "行," + "防腐等级" + "【" + col30 + "】不存在!" + "|");
}
else
{
pipeline.PaintCode = col30;
pipeline.PaintId = paint.Id;
}
}
if (!string.IsNullOrEmpty(pipeline.PipelineCode) && !string.IsNullOrEmpty(pipeline.WeldJointCode))
{
pipeline.ProjectId = this.CurrUser.LoginProjectId;
@@ -1006,6 +1024,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
VacuumPressure = x.VacuumPressure,
PCMedium = x.PCMedium,
MaterialId = x.MaterialId,
PaintId = x.PaintId,
Remark = x.Remark,
FlowingSection = x.FlowingSection
}).DistinctBy(temp => new
@@ -1032,6 +1051,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
temp.VacuumPressure,
temp.PCMedium,
temp.MaterialId,
temp.PaintId,
temp.Remark,
temp.FlowingSection
}).ToList();
@@ -1060,6 +1080,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
pipeline.VacuumPressure = pipelines[i].VacuumPressure;
pipeline.PCMedium = pipelines[i].PCMedium;
pipeline.MaterialId = pipelines[i].MaterialId;
pipeline.PaintId = pipelines[i].PaintId;
pipeline.Remark = pipelines[i].Remark;
pipeline.FlowingSection = pipelines[i].FlowingSection;
@@ -221,6 +221,10 @@
FieldType="String" HeaderText="材质" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PaintCode" DataField="PaintCode" SortField="PaintCode"
FieldType="String" HeaderText="防腐等级" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="FlowingSection" DataField="FlowingSection" SortField="FlowingSection"
FieldType="String" HeaderText="流水段" HeaderTextAlign="Center"
TextAlign="Left">
@@ -266,12 +266,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </summary>
private void BindGrid1(string pipelineId)
{
string strSql = @"SELECT ProjectId,UnitWorkId,PipelineId,PipelineCode,UnitName,MediumCode,MediumName,PipingClassCode,UnitWorkCode,SingleName,
TestPressure,SingleNumber,DetectionRateCode,DetectionType,Remark,FlowingSection,TestMediumCode,TotalDin,
JointCount,PressurePipingClassCode,PipeLenth,DesignPress,DesignTemperature,LeakPressure,VacuumPressure,
LeakMediumName,PCMediumName,MaterialCode
FROM dbo.View_HJGL_Pipeline
WHERE ProjectId= @ProjectId";
string strSql = @"SELECT v.ProjectId,v.UnitWorkId,v.PipelineId,v.PipelineCode,v.UnitName,v.MediumCode,v.MediumName,v.PipingClassCode,v.UnitWorkCode,v.SingleName,
v.TestPressure,v.SingleNumber,v.DetectionRateCode,v.DetectionType,v.Remark,v.FlowingSection,v.TestMediumCode,v.TotalDin,
v.JointCount,v.PressurePipingClassCode,v.PipeLenth,v.DesignPress,v.DesignTemperature,v.LeakPressure,v.VacuumPressure,
v.LeakMediumName,v.PCMediumName,v.MaterialCode,paint.PaintCode
FROM dbo.View_HJGL_Pipeline v
LEFT JOIN dbo.HJGL_Pipeline p ON p.PipelineId = v.PipelineId
LEFT JOIN dbo.Tw_PaintCodeDict paint ON paint.Id = p.PaintId
WHERE v.ProjectId= @ProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
strSql += " AND PipelineId = @PipelineId";
@@ -1622,4 +1624,4 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
#endregion
}
}
}
@@ -90,10 +90,7 @@
EnablePostBack="true" OnClick="btnTreeFind_Click" runat="server">
</f:Button>
<f:Button ID="btnStatisticsMat" ToolTip="匹配材料" Icon="TabGo" runat="server" OnClick="btnStatisticsMat_Click" Hidden="true">
</f:Button>
<f:Button ID="btnrefresh" ToolTip="同步NET" Icon="ArrowRefresh"
EnablePostBack="true" OnClick="btnrefresh_Click" runat="server" Hidden="true">
</f:Button>
</f:Button>
</Items>
</f:Toolbar>
@@ -121,8 +118,8 @@
</f:Toolbar>
</Toolbars>
<Items>
<f:Grid ID="Grid3" ShowBorder="false" ShowHeader="false" runat="server" EnableCollapse="false"
DataKeyNames="Key" DataIDField="Key" ShowGridHeader="false" EnableRowLines="false" EnableAlternateRowColor="false">
<f:Grid ID="Grid3" ShowBorder="false" ShowHeader="false" runat="server" EnableCollapse="false" EnableCheckBoxSelect="true"
DataKeyNames="Key" DataIDField="Key" ShowGridHeader="true" EnableRowLines="false" EnableAlternateRowColor="false">
<Columns>
<f:RenderField Width="200px" ColumnID="Value" DataField="Value" SortField="Value"
FieldType="String" HeaderText="管线" HeaderTextAlign="Center"
@@ -145,11 +142,13 @@
<Toolbars>
<f:Toolbar ID="Toolbar3" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:Label ID="lbRate" runat="server" LabelWidth="100px" Hidden="true"></f:Label>
<f:Button ID="btnPriorityComponents" Text="优先匹配选中焊口" Icon="TabGo" runat="server" OnClick="btnPriorityComponents_Click">
</f:Button>
<f:Button ID="btnMatchMat" Text="匹配" Icon="ArrowRefresh" runat="server" OnClick="btnMatchMat_Click"> </f:Button>
<f:Button ID="btnConfirmMaterialCode" Text="保存匹配结果" Icon="SystemSave" runat="server" OnClick="btnConfirmMaterialCode_Click" ConfirmText="确定根据当前匹配结果反写材料主编码吗?">
</f:Button>
<f:Button ID="btnClearMaterialCode" Text="清除匹配结果" Icon="Delete" runat="server" OnClick="btnClearMaterialCode_Click" ConfirmText="确定清除当前选中管线已反写的材料主编码吗?">
</f:Button>
<f:Button ID="btnGenTask" ToolTip="生成任务单" Text="生成任务单" Icon="ApplicationViewIcons" runat="server" OnClick="btnGenTask_Click" ConfirmText="确定生成任务单吗?">
</f:Button>
<f:CheckBox ID="cbSelectCom" ShowLabel="false" runat="server" Text="默认勾选匹配100%" Checked="true">
@@ -162,10 +161,10 @@
</f:Toolbar>
</Toolbars>
<Items>
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="false" Title="材料匹配" EnableRowClickEvent="true"
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="false" Title="材料匹配"
EnableCollapse="true" runat="server" BoxFlex="1" DataKeyNames="PipelineId" ForceFit="true"
EnableColumnLines="true" DataIDField="PipelineId" AllowSorting="true" OnRowClick="Grid2_RowClick"
SortField="PipelineId" SortDirection="ASC" EnableCheckBoxSelect="true">
EnableColumnLines="true" DataIDField="PipelineId" AllowSorting="true"
SortField="MatchRate" SortDirection="DESC" EnableCheckBoxSelect="true">
<Columns>
<f:RenderField Width="150px" ColumnID="UnitWorkName" DataField="UnitWorkName" SortField="UnitWorkName"
FieldType="String" HeaderText="主项" HeaderTextAlign="Center"
@@ -175,7 +174,7 @@
FieldType="String" HeaderText="管线号" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="MatchRateString" DataField="MatchRateString" SortField="MatchRateString"
<f:RenderField Width="150px" ColumnID="MatchRateString" DataField="MatchRateString" SortField="MatchRate"
FieldType="String" HeaderText="匹配率" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
@@ -190,7 +189,7 @@
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="材料匹配明细" EnableRowClickEvent="true"
EnableCollapse="true" runat="server" BoxFlex="1" DataKeyNames="Id,PipelineId,PrefabricatedComponents,WeldJointId" ForceFit="true"
EnableColumnLines="true" DataIDField="Id" AllowSorting="true" OnRowDataBound="Grid1_RowDataBound" FixedRowHeight="true" RowHeight="46"
EnableColumnLines="true" DataIDField="Id" AllowSorting="true" FixedRowHeight="true" RowHeight="46"
SortField="PipelineCode" SortDirection="ASC" OnSort="Grid1_Sort" EnableCheckBoxSelect="true" EnableSummary="true" SummaryPosition="Bottom" >
<Columns>
<f:RenderField Width="200px" ColumnID="PipelineCode" DataField="PipelineCode" SortField="PipelineCode"
@@ -5,8 +5,6 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace FineUIPro.Web.HJGL.WeldingManage
@@ -14,7 +12,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
public partial class WeldMatMatch : PageBase
{
public int pageSize = PipelineService.pageSize;
public static decimal Rate = 0;
public string WarehouseId
{
get
@@ -26,6 +24,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
ViewState["WarehouseId"] = value;
}
}
public string PipeArea
{
get
@@ -37,17 +36,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
ViewState["PipeArea"] = value;
}
}
public string Line_No
{
get
{
return (string)ViewState["Line_No"];
}
set
{
ViewState["Line_No"] = value;
}
}
public Dictionary<string, string> dicSeclectPipeLine
{
get
@@ -59,6 +48,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
ViewState["dicSeclectPipeLine"] = value;
}
}
public List<Model.Tw_PipeMatMatchOutput> tw_PipeMatMatchOutputs
{
get
@@ -106,7 +96,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
drpWarehouse.DataSource = BLL.TwInOutplanmasterService.GetWarehouseCode(this.CurrUser.LoginProjectId);
drpWarehouse.DataBind();
drpWarehouse_SelectedIndexChanged(null, null);
; HJGL_MaterialService.materialStockItems_FIELD = new List<Model.MaterialStockItem>();
HJGL_MaterialService.materialStockItems_FIELD = new List<Model.MaterialStockItem>();
HJGL_MaterialService.materialStockItems_SHOP = new List<Model.MaterialStockItem>();
dicSeclectPipeLine = new Dictionary<string, string>();
priorityWeldJoints = new Dictionary<string, HashSet<string>>();
@@ -123,6 +113,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
#region 加载树装置-单位-工作区
/// <summary>
/// 加载树
/// </summary>
@@ -146,10 +137,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
rootNode2.EnableCheckBox = false;
this.tvControlItem.Nodes.Add(rootNode2);
var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
// 获取当前用户所在单位
var currUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
var unitWorkList = (from x in Funs.DB.WBS_UnitWork
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.SuperUnitWork == null && x.UnitId != null && x.ProjectType != null
@@ -158,27 +145,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage
List<Model.WBS_UnitWork> unitWork1 = null;
List<Model.WBS_UnitWork> unitWork2 = null;
//// 当前为施工单位,只能操作本单位的数据
//if (currUnit != null && currUnit.UnitType == Const.ProjectUnitType_2)
//{
// unitWork1 = (from x in unitWorkList
// where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "1"
// select x).ToList();
// unitWork2 = (from x in unitWorkList
// where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "2"
// select x).ToList();
//}
//else
//{
unitWork1 = (from x in unitWorkList where x.ProjectType == "1" select x).ToList();
unitWork2 = (from x in unitWorkList where x.ProjectType == "2" select x).ToList();
//}
if (unitWork1.Count() > 0)
{
foreach (var q in unitWork1)
{
int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId);
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
TreeNode tn1 = new TreeNode();
@@ -201,8 +174,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
foreach (var q in unitWork2)
{
int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId);
// var NowComPipelineCode = PipelineService.GetNoComPipelinesByUnitWordId(q.UnitWorkId);
//int a = NowComPipelineCode.Count();
var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId);
TreeNode tn2 = new TreeNode();
tn2.NodeID = q.UnitWorkId;
@@ -225,24 +196,17 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
}
}
/// <summary>
/// 按分页方式向试压包节点追加管线子节点。
/// </summary>
/// <param name="node">需要加载管线的试压包树节点。</param>
private void BindNodes(TreeNode node)
{
//var NowComPipelineCode = PipelineService.GetNoComPipelinesByUnitWordId(node.NodeID);
//if (!node.Text.Contains("|"))
//{
// node.Text += "|" + NowComPipelineCode.Count();
//}
var pipeline = GetTestPackagePipelineList(node.NodeID);
//pipeline= pipeline.Where(x => NowComPipelineCode.Contains(x.PipelineCode)).ToList();
if (!node.Text.Contains("|"))
{
node.Text += "|" + pipeline.Count();
}
int pageindex = int.Parse(node.CommandName.Split('|')[0]);
int pageCount = int.Parse(node.CommandName.Split('|')[1]);
@@ -251,10 +215,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
pipeline = pipeline.Skip(pageSize * (pageindex - 1)).Take(pageSize).ToList();
foreach (var item in pipeline)
{
/*if (!NowComPipelineCode.Contains(item.PipelineCode))
{
continue;
}*/
TreeNode newNode = new TreeNode();
newNode.Text = item.PipelineCode;
newNode.NodeID = item.PipelineId;
@@ -371,8 +331,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
}
#endregion
/// <summary>
/// 按当前筛选条件重新加载左侧WBS管线树。
/// </summary>
@@ -383,7 +341,10 @@ namespace FineUIPro.Web.HJGL.WeldingManage
this.InitTreeMenu();
}
#endregion 加载树装置-单位-工作区
#region 点击TreeView
/// <summary>
/// 点击TreeView
/// </summary>
@@ -395,86 +356,29 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
string CommandName = e.Node.ParentNode.CommandName;
e.Node.ParentNode.CommandName = (int.Parse(CommandName.Split('|')[0]) + 1) + "|" + int.Parse(CommandName.Split('|')[1]);
TreeNode treeNode = e.Node.ParentNode;
treeNode.Nodes.Remove(e.Node);
e.Node.ParentNode.Nodes.Remove(e.Node);
BindNodes(e.Node.ParentNode);
}
else
{
// this.BindGrid();
}
}
#endregion
#endregion 点击TreeView
#region 数据绑定
/// <summary>
/// 绑定当前选中管线的材料汇总信息。
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT ISNULL(pipe.MaterialCode2, lib.Code) AS MaterialCode,
ISNULL(lib.MaterialName, libCode.MaterialName) AS MaterialName,
ISNULL(lib.MaterialUnit, libCode.MaterialUnit) AS MaterialUnit,
ISNULL(lib.MaterialSpec, libCode.MaterialSpec) AS MaterialSpec,
ISNULL(lib.MaterialMade, libCode.MaterialMade) AS MaterialMade,
ISNULL(lib.MaterialDef, libCode.MaterialDef) AS MaterialDef,
sum(pipe.Number)as Number ,
'0' as MatchNum,'否' AS CheckState
FROM dbo.HJGL_PipeLineMat pipe
LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode
LEFT JOIN dbo.HJGL_Pipeline line ON line.PipelineId = pipe.PipelineId
OUTER APPLY (SELECT TOP 1 * FROM dbo.HJGL_MaterialCodeLib codeLib WHERE codeLib.ProjectId=line.ProjectId AND codeLib.Code=pipe.MaterialCode2 ORDER BY codeLib.MaterialCode) libCode
WHERE PipelineId=@PipelineId
group by ISNULL(pipe.MaterialCode2, lib.Code),
ISNULL(lib.MaterialName, libCode.MaterialName),
ISNULL(lib.MaterialUnit, libCode.MaterialUnit),
ISNULL(lib.MaterialSpec, libCode.MaterialSpec),
ISNULL(lib.MaterialMade, libCode.MaterialMade),
ISNULL(lib.MaterialDef, libCode.MaterialDef) ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
SqlParameter[] parameter = listStr.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
Grid1.DataSource = dt;
Grid1.DataBind();
}
/// <summary>
/// 绑定管线匹配汇总。重新匹配会刷新 Grid2,需要把用户原来勾选的管线恢复回来。
/// </summary>
/// <param name="keepSelectedPipelineIds">需要保留选中状态的管线ID</param>
void BindGrid2(IEnumerable<string> keepSelectedPipelineIds = null)
{
//var result = tw_PipeMatMatchOutputs
// .GroupBy(item => new { item.PipelineId, item.PipelineCode,item.UnitWorkName }) // 按 PipelineId 和 PipelineCode 分组
// .Select(group => new
// {
// PipelineId = group.Key.PipelineId, // 当前组的 PipelineId
// PipelineCode = group.Key.PipelineCode, // 当前组的 PipelineCode
// UnitWorkName = group.Key.UnitWorkName, // 当前组的 UnitWorkName
// AverageMatchRate = group.Average(item => item.MatchRate) // 计算平均 MatchRate
// })
// .ToList(); // 转换为 List
//// 如果需要将结果转换为自定义类型,可以这样做
//List<Tw_PipeMatMatchOutput> output = result.Select(r => new Tw_PipeMatMatchOutput
//{
// PipelineId = r.PipelineId,
// PipelineCode = r.PipelineCode,
// UnitWorkName = r.UnitWorkName,
// MatchRate = r.AverageMatchRate,
// MatchRateString = Math.Round((decimal)r.AverageMatchRate * 100, 2).ToString() + "%"
//}).ToList();
var output = TwArrivalStatisticsService.GetPipeMatch(tw_PipeMatMatchOutputs);
private void BindGrid2(IEnumerable<string> keepSelectedPipelineIds = null)
{
var output = TwArrivalStatisticsService.GetPipeMatch(tw_PipeMatMatchOutputs)
// Grid2 默认展示按管线整体匹配率倒序,便于优先处理齐套率高的管线。
.OrderByDescending(x => x.MatchRate ?? 0)
.ThenBy(x => x.UnitWorkName)
.ThenBy(x => x.PipelineCode)
.ToList();
Grid2.DataSource = output;
Grid2.DataBind();
/*if (output.Any())
{
Rate = Math.Round((decimal)output.Average(item => item.MatchRate) * 100, 2);
lbRate.Text = "匹配率:" + Rate.ToString() + "%";
}*/
// “优先匹配选中焊口”会重新计算匹配结果,重新绑定后要继续保留原管线选中状态。
var keepSelectedList = keepSelectedPipelineIds == null ? new List<string>() : keepSelectedPipelineIds.Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
var selectList = new List<string>();
@@ -486,13 +390,11 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
Grid2.Rows[i].RowCssClass = "green";
selectList.Add(model.PipelineId);
}
else
{
Grid2.Rows[i].RowCssClass = "red";
}
}
if (cbSelectCom.Checked)
{
@@ -508,9 +410,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// <summary>
/// 绑定已加入匹配的管线列表,并标识正在出库中的管线。
/// </summary>
void BindGrid3()
private void BindGrid3()
{
Grid3.DataSource = dicSeclectPipeLine;
Grid3.DataBind();
for (int i = 0; i < Grid3.Rows.Count; i++)
@@ -524,41 +425,29 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
Grid3.Rows[i].RowCssClass = "yellow";
}
}
}
#endregion
#endregion 数据绑定
#region 表格事件
/// <summary>
/// 材料匹配明细行绑定事件,保留历史行样式扩展入口。
/// </summary>
/// <param name="sender">事件源。</param>
/// <param name="e">Grid行绑定事件参数。</param>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
// DataRowView row = e.DataItem as DataRowView;
/* string code = Grid1.DataKeys[e.RowIndex][0].ToString();
var num= decimal.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) ;
bool istrue = HJGL_MaterialService.isInStockByMaterialCode(code,num,PipeArea, this.CurrUser.LoginProjectId);
if (istrue)
{
e.RowCssClass = "color1";
}*/
}
/// <summary>
/// 绑定指定管线的材料匹配明细,设置行颜色、优先焊口选中状态和可生成任务单合计。
/// 绑定 Grid2 当前选中管线的材料匹配明细,设置行颜色、优先焊口选中状态和可生成任务单合计。
/// </summary>
/// <param name="pipelineId">管线ID。</param>
private void BindMaterialDetail(string pipelineId)
private void BindMaterialDetail()
{
var selectedPipelineIds = Grid2.SelectedRowIDArray == null
? new List<string>()
: Grid2.SelectedRowIDArray.Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
if (!selectedPipelineIds.Any() && !string.IsNullOrEmpty(Grid2.SelectedRowID))
{
selectedPipelineIds.Add(Grid2.SelectedRowID);
}
// 任务单只允许从未生成任务单的焊口材料中选择,避免重复生成焊接任务。
var tb = GetNoTaskMaterialDetails()
.Where(x => x.PipelineId == pipelineId)
.Where(x => selectedPipelineIds.Contains(x.PipelineId))
// 明细固定按管线号、预制组件号、焊口号、材料编码排序,便于同一焊口材料连续展示。
.OrderBy(x => x.PipelineCode)
.ThenBy(x => x.PrefabricatedComponents)
@@ -614,7 +503,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
JObject summary = new JObject();
summary.Add("PipelineCode", "合计");
summary.Add("PrefabricatedComponents", "可生成任务单焊口数:");
summary.Add("WeldJointCode", taskWeldJointCount.ToString());
summary.Add("WeldJointCode", taskWeldJointCount.ToString());
Grid1.SummaryData = summary;
}
@@ -744,48 +633,9 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// <param name="e">Grid行点击事件参数。</param>
protected void Grid2_RowClick(object sender, GridRowClickEventArgs e)
{
BindMaterialDetail(Grid2.SelectedRowID);
BindMaterialDetail();
}
/// <summary>
/// 点击材料明细行时联动三维模型定位当前管线或单位工程。
/// </summary>
/// <param name="sender">事件源。</param>
/// <param name="e">Grid行点击事件参数。</param>
protected void Grid1_RowClick(object sender, GridRowClickEventArgs e)
{
Model.Parameter3D parameter3D = new Model.Parameter3D();
Model.ColorModel colorModel = new Model.ColorModel();
colorModel = BLL.Project_SysSetService.GetColorModel(this.CurrUser.LoginProjectId);
parameter3D.ColorModel = colorModel;
parameter3D.ButtonType = "3";
if (this.tvControlItem.SelectedNode.CommandName == "单位工程")
{
parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(tvControlItem.SelectedNodeID);
}
else if (this.tvControlItem.SelectedNode.CommandName == "管线")
{
var modelpipe = PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID);
if (modelpipe != null && !string.IsNullOrEmpty(modelpipe.UnitWorkId))
{
bool istrue = BLL.HJGL_MaterialService.isInStockByPipeline(tvControlItem.SelectedNodeID, this.CurrUser.LoginProjectId);
if (istrue)
{
Line_No = "/" + modelpipe.PipelineCode;
}
// parameter3D.Line_No = Line_No;
parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(modelpipe.UnitWorkId);
var pipecode = "/" + modelpipe.PipelineCode;
parameter3D.TagNum = pipecode;
}
}
//ctlAuditFlow.Url_item = BLL.Project_SysSetService.GetAvevaNetUrl_Item(this.CurrUser.LoginProjectId) + parameter3D.ModelName;
//ctlAuditFlow.data = parameter3D;
//ctlAuditFlow.BindData();
}
/// <summary>
/// 记录材料明细排序字段,并按当前选中管线重新绑定明细。
/// </summary>
@@ -795,86 +645,28 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
if (!string.IsNullOrEmpty(Grid2.SelectedRowID) && tw_PipeMatMatchOutputs != null && tw_PipeMatMatchOutputs.Any())
if (tw_PipeMatMatchOutputs != null && tw_PipeMatMatchOutputs.Any())
{
BindMaterialDetail(Grid2.SelectedRowID);
}
else
{
BindGrid();
BindMaterialDetail();
}
}
#endregion
#endregion 表格事件
#region 按钮事件
/// <summary>
/// 刷新三维模型参数,按当前树节点定位单位工程或管线。
/// 仓库切换后刷新当前仓库ID并重新加载左侧管线树。
/// </summary>
/// <param name="sender">事件源。</param>
/// <param name="e">事件参数。</param>
protected void btnrefresh_Click(object sender, EventArgs e)
protected void drpWarehouse_SelectedIndexChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID))
{
Model.Parameter3D parameter3D = new Model.Parameter3D();
Model.ColorModel colorModel = new Model.ColorModel();
colorModel = BLL.Project_SysSetService.GetColorModel(this.CurrUser.LoginProjectId);
parameter3D.ColorModel = colorModel;
parameter3D.TagNum = "";
parameter3D.ButtonType = "3";
if (this.tvControlItem.SelectedNode.CommandName == "单位工程")
{
parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(tvControlItem.SelectedNodeID);
var pipeline = (from x in Funs.DB.HJGL_Pipeline
where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == tvControlItem.SelectedNodeID && x.PipeArea == PipeArea && x.WarehouseId == WarehouseId
orderby x.PipelineCode
select x).ToList();
List<string> pipelineList = new List<string>();
foreach (var item in pipeline)
{
bool istrue = BLL.HJGL_MaterialService.isInStockByPipeline(item.PipelineId, this.CurrUser.LoginProjectId);
if (istrue)
{
pipelineList.Add("/" + item.PipelineCode);
}
}
parameter3D.TagNum = string.Join(",", pipelineList);
parameter3D.Line_No = string.Join(",", pipelineList);
}
else if (this.tvControlItem.SelectedNode.CommandName == "管线")
{
Model.HJGL_Pipeline pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID);
this.hdUnitWorkId.Text = string.Empty;
if (pipeline != null)
{
this.hdUnitWorkId.Text = pipeline.UnitWorkId;
this.BindGrid();
}
if (pipeline != null && !string.IsNullOrEmpty(pipeline.UnitWorkId))
{
bool istrue = BLL.HJGL_MaterialService.isInStockByPipeline(tvControlItem.SelectedNodeID, this.CurrUser.LoginProjectId);
if (istrue)
{
Line_No = "/" + pipeline.PipelineCode;
}
//parameter3D.Line_No = Line_No;
parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(pipeline.UnitWorkId);
var pipecode = "/" + pipeline.PipelineCode;
parameter3D.TagNum = pipecode;
}
}
//ctlAuditFlow.Url_item = BLL.Project_SysSetService.GetAvevaNetUrl_Item(this.CurrUser.LoginProjectId) + parameter3D.ModelName;
//ctlAuditFlow.data = parameter3D;
//ctlAuditFlow.BindData();
}
WarehouseId = Base_WarehouseService.GetWarehouseList(this.CurrUser.LoginProjectId)
.Where(x => x.WarehouseId == drpWarehouse.SelectedValue || x.WarehouseName == drpWarehouse.SelectedValue)
.Select(x => x.WarehouseId)
.FirstOrDefault();
this.InitTreeMenu();//加载树
}
/// <summary>
@@ -896,20 +688,80 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
/// <summary>
/// 将左侧勾选的管线加入本次材料匹配范围并刷新匹配结果。
/// 按树节点获取可加入本次匹配的管线。单位工程节点会展开到其下所有试压包,再套用当前仓库、区域和页面筛选条件。
/// </summary>
/// <param name="node">左侧树节点。</param>
/// <returns>符合材料匹配入口条件的管线列表。</returns>
private List<Model.HJGL_Pipeline> GetMatchPipelinesByTreeNode(TreeNode node)
{
if (node == null)
{
return new List<Model.HJGL_Pipeline>();
}
if (node.CommandName == "管线")
{
var pipeline = PipelineService.GetPipelineByPipelineId(node.NodeID);
return pipeline == null ? new List<Model.HJGL_Pipeline>() : new List<Model.HJGL_Pipeline> { pipeline };
}
if (node.CommandName == "单位工程")
{
var testPackageIds = (from x in Funs.DB.PTP_TestPackage
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.UnitWorkId == node.NodeID
select x.PTP_ID).ToList();
return testPackageIds
.SelectMany(x => GetTestPackagePipelineList(x))
.GroupBy(x => x.PipelineId)
.Select(x => x.First())
.OrderBy(x => x.PipelineCode)
.ToList();
}
if (!string.IsNullOrEmpty(node.CommandName) && node.CommandName.Contains("|"))
{
return GetTestPackagePipelineList(node.NodeID);
}
return new List<Model.HJGL_Pipeline>();
}
/// <summary>
/// 将左侧勾选管线或当前选中主项/试压包下的管线加入本次材料匹配范围并刷新匹配结果。
/// </summary>
/// <param name="sender">事件源。</param>
/// <param name="e">事件参数。</param>
protected void btnAddPipelineMatchMat_Click(object sender, EventArgs e)
{
int addCount = 0;
var selectNodes = tvControlItem.GetCheckedNodes();
foreach (var node in selectNodes)
{
if (dicSeclectPipeLine.Where(x => x.Key == node.NodeID).Count() == 0 && node.CommandName == "管线")
{
dicSeclectPipeLine.Add(node.NodeID, node.Text);
addCount++;
}
}
var selectedNodePipelines = GetMatchPipelinesByTreeNode(tvControlItem.SelectedNode);
foreach (var pipeline in selectedNodePipelines)
{
if (pipeline != null && !dicSeclectPipeLine.ContainsKey(pipeline.PipelineId))
{
dicSeclectPipeLine.Add(pipeline.PipelineId, pipeline.PipelineCode);
addCount++;
}
}
if (addCount == 0)
{
ShowNotify("未找到可新增的匹配管线!", MessageBoxIcon.Warning);
return;
}
RefreshMatchResult();
}
@@ -936,6 +788,18 @@ namespace FineUIPro.Web.HJGL.WeldingManage
RefreshMatchResult();
}
}
/// <summary>
/// 匹配
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMatchMat_Click(object sender, EventArgs e)
{
BindMaterialDetail();
}
/// <summary>
/// 优先匹配选中焊口
/// </summary>
@@ -984,7 +848,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
RefreshMatchResult();
Grid2.SelectedRowIDArray = keepSelectedPipelineIds.Distinct().ToArray();
BindMaterialDetail(selectedPipelineId);
BindMaterialDetail();
}
/// <summary>
@@ -1015,21 +879,51 @@ namespace FineUIPro.Web.HJGL.WeldingManage
return;
}
var invalidMaterials = matchedMaterials
.Where(x => string.IsNullOrEmpty(x.MatchMaterialCode) || (x.MatchRate ?? 0) < 1)
.ToList();
/* if (invalidMaterials.Any())
{
ShowNotify("存在未100%匹配的材料,不能反写材料主编码!", MessageBoxIcon.Warning);
return;
}*/
int count = BLL.PipelineMatService.UpdateMaterialCodeByMatchOutputs(matchedMaterials);
ShowNotify("已保存材料主编码" + count.ToString() + "条!", MessageBoxIcon.Success);
RefreshMatchResult();
if (Grid2.SelectedRowIDArray.Any())
{
BindMaterialDetail(Grid2.SelectedRowIDArray.First());
BindMaterialDetail();
}
}
/// <summary>
/// 清除 Grid2 当前选中管线中已反写到管线材料表的材料主编码。
/// </summary>
/// <param name="sender">事件源。</param>
/// <param name="e">事件参数。</param>
protected void btnClearMaterialCode_Click(object sender, EventArgs e)
{
if (Grid2.SelectedRowIDArray == null || !Grid2.SelectedRowIDArray.Any())
{
ShowNotify("请先选择需要清除匹配结果的管线!", MessageBoxIcon.Warning);
return;
}
if (tw_PipeMatMatchOutputs == null || !tw_PipeMatMatchOutputs.Any())
{
RefreshMatchResult();
}
var selectedPipelineIds = Grid2.SelectedRowIDArray.ToList();
var pipeLineMatIds = tw_PipeMatMatchOutputs
.Where(x => selectedPipelineIds.Contains(x.PipelineId))
.Select(x => x.PipeLineMatId)
.Distinct()
.ToList();
if (!pipeLineMatIds.Any())
{
ShowNotify("未找到需要清除的材料匹配明细!", MessageBoxIcon.Warning);
return;
}
int count = BLL.PipelineMatService.ClearMaterialCodeByPipeLineMatIds(pipeLineMatIds);
ShowNotify("已清除材料主编码" + count.ToString() + "条!", MessageBoxIcon.Success);
RefreshMatchResult();
if (Grid2.SelectedRowIDArray.Any())
{
BindMaterialDetail();
}
}
@@ -1066,7 +960,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
Grid3.DataSource = null;
Grid3.DataBind();
}
}
/// <summary>
@@ -1288,26 +1181,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
return new HashSet<string>(GetTaskableWeldJointRows(weldJointIds).Select(x => x.WeldJointId));
}
/// <summary>
/// 获取指定管线范围内的优先匹配焊口集合。
/// </summary>
/// <param name="selectedPipelineIds">管线ID列表。</param>
/// <returns>管线ID到优先焊口ID集合的映射。</returns>
private Dictionary<string, HashSet<string>> GetPriorityWeldJointIds(List<string> selectedPipelineIds)
{
var result = new Dictionary<string, HashSet<string>>();
var selectedPriority = priorityWeldJoints
.Where(x => selectedPipelineIds.Contains(x.Key) && x.Value != null && x.Value.Any())
.ToList();
foreach (var item in selectedPriority)
{
result[item.Key] = new HashSet<string>(item.Value);
}
return result;
}
/// <summary>
/// 判断焊材钢号类别是否能覆盖母材类别。
/// </summary>
@@ -1338,21 +1211,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
return isCover;
}
#endregion
/// <summary>
/// 仓库切换后刷新当前仓库ID并重新加载左侧管线树。
/// </summary>
/// <param name="sender">事件源。</param>
/// <param name="e">事件参数。</param>
protected void drpWarehouse_SelectedIndexChanged(object sender, EventArgs e)
{
WarehouseId = Base_WarehouseService.GetWarehouseList(this.CurrUser.LoginProjectId)
.Where(x => x.WarehouseId == drpWarehouse.SelectedValue || x.WarehouseName == drpWarehouse.SelectedValue)
.Select(x => x.WarehouseId)
.FirstOrDefault();
this.InitTreeMenu();//加载树
}
#endregion 按钮事件
}
}
@@ -140,15 +140,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Button btnStatisticsMat;
/// <summary>
/// btnrefresh 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnrefresh;
/// <summary>
/// tvControlItem 控件。
/// </summary>
@@ -239,15 +230,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar3;
/// <summary>
/// lbRate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lbRate;
/// <summary>
/// btnPriorityComponents 控件。
/// </summary>
@@ -257,6 +239,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Button btnPriorityComponents;
/// <summary>
/// btnMatchMat 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnMatchMat;
/// <summary>
/// btnConfirmMaterialCode 控件。
/// </summary>
@@ -266,6 +257,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.Button btnConfirmMaterialCode;
/// <summary>
/// btnClearMaterialCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnClearMaterialCode;
/// <summary>
/// btnGenTask 控件。
/// </summary>
+22 -3
View File
@@ -6,13 +6,31 @@
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0014" Text="管道介质" NavigateUrl="HJGL/BaseInfo/Medium.aspx"></TreeNode>
<TreeNode id="2F027233-22EC-4063-A04F-FB9FE6A91588" Text="材料仓库" NavigateUrl="HJGL/BaseInfo/Warehouse.aspx"></TreeNode>
<TreeNode id="F6194C00-D256-485D-9056-171FAB75928A" Text="管道颜色标识库" NavigateUrl="HJGL/BaseInfo/MaterialColor.aspx"></TreeNode>
<TreeNode id="85DFE1D3-9E68-46B5-87E5-A525698F2F5F" Text="焊接设置" NavigateUrl=""><TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0013" Text="管道材质定义" NavigateUrl="HJGL/BaseInfo/Material.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0011" Text="管道规格定义" NavigateUrl="HJGL/BaseInfo/Control.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0010" Text="焊接方法定义" NavigateUrl="HJGL/BaseInfo/WeldingMethod.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0004" Text="焊接耗材定义" NavigateUrl="HJGL/BaseInfo/Consumables.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0008" Text="焊缝类型定义" NavigateUrl="HJGL/BaseInfo/Weld.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0012" Text="坡口类型定义" NavigateUrl="HJGL/BaseInfo/Groove.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0003" Text="焊接位置定义" NavigateUrl="HJGL/BaseInfo/WeldingLocation.aspx"></TreeNode>
<TreeNode id="D68AE881-7472-4C48-953D-E13C46D6E2A4" Text="焊接缺陷定义" NavigateUrl="HJGL/BaseInfo/Defect.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0006" Text="探伤类型定义" NavigateUrl="HJGL/BaseInfo/Testing.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0007" Text="探伤比例定义" NavigateUrl="HJGL/BaseInfo/Detection.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0015" Text="试压类型定义" NavigateUrl="HJGL/BaseInfo/Pressure.aspx"></TreeNode>
<TreeNode id="F480545B-371A-4949-85F8-92B2CA75A044" Text="试验介质" NavigateUrl="HJGL/BaseInfo/TestMedium.aspx"></TreeNode>
<TreeNode id="49852102-F148-44FB-95F6-EFBE32708276" Text="管道吹洗方法定义" NavigateUrl="HJGL/BaseInfo/PurgeMethod.aspx"></TreeNode>
<TreeNode id="C587E930-4FBC-48CE-8BF9-7CB8164C207C" Text="压力管道级别定义" NavigateUrl="HJGL/BaseInfo/PressurePipingClass.aspx"></TreeNode>
<TreeNode id="02C1F7EC-B08F-4D3A-801E-EDF8E19ED771" Text="气体保护方式定义" NavigateUrl="HJGL/BaseInfo/GasProtectionMode.aspx"></TreeNode>
<TreeNode id="05336157-BECD-4BA1-989C-A86718574F5E" Text="保护气体定义" NavigateUrl="HJGL/BaseInfo/ProtectionGas.aspx"></TreeNode>
<TreeNode id="55DB671A-7DEB-4DA4-8429-E66AA69DBE7D" Text="材料编码库" NavigateUrl="HJGL/BaseInfo/MaterialCodeLib.aspx"></TreeNode>
</TreeNode>
</TreeNode>
<TreeNode id="1C6F9CA9-FDAC-4CE5-A19C-5536538851E1" Text="试压包划分" NavigateUrl="HJGL/TestPackage/TestPackageEdit.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-DCS2-DCC3O48F080F" Text="数据导入" NavigateUrl=""><TreeNode id="32F5CC8C-E0F4-456C-AB88-77E36269FA50" Text="焊接设计基础数据导入" NavigateUrl="HJGL/WeldingManage/WeldJointList.aspx"></TreeNode>
<TreeNode id="EFD1E914-E79C-4F5E-A2F7-CFF4F7821284" Text="管线导入" NavigateUrl="HJGL/DataImport/PipeLineInAuto.aspx"></TreeNode>
<TreeNode id="34BAD63E-EF7C-4D7E-8641-C706BBFCD85F" Text="轴测图识别" NavigateUrl="HJGL/DataImport/DrawingRecognition.aspx"></TreeNode>
</TreeNode>
<TreeNode id="1EE36752-6077-47C9-AFF0-5372B862FF61" Text="管线划分" NavigateUrl="HJGL/PreDesign/PipelingDivide.aspx"></TreeNode>
<TreeNode id="1C6F9CA9-FDAC-4CE5-A19C-5536538851E1" Text="试压包划分" NavigateUrl="HJGL/TestPackage/TestPackageEdit.aspx"></TreeNode>
<TreeNode id="EF6B01AF-D038-4A38-BFAF-D89130D60DE6" Text="材料信息导入" NavigateUrl="HJGL/DataImport/MaterialInformation.aspx"></TreeNode>
<TreeNode id="1E36EA73-D536-4215-BFB9-A8771937BD89" Text="工厂预制管理" NavigateUrl=""><TreeNode id="53948077-B51D-4FF3-BFB0-AB4E27C42875" Text="排产计划" NavigateUrl="HJGL/PreDesign/ProductionSchedulingPlan.aspx"></TreeNode>
<TreeNode id="8255554C-0A92-4C7B-BF19-779AF0220A8C" Text="预制组件管理" NavigateUrl="HJGL/PreDesign/PrePipeline.aspx"></TreeNode>
@@ -28,14 +46,15 @@
<TreeNode id="BCCA4D81-410C-4746-B1E4-F882BC3A25F4" Text="出库单管理" NavigateUrl="CLGL/OutputMaster.aspx"></TreeNode>
</TreeNode>
<TreeNode id="4E88A676-89E3-44EC-BF50-37BE5F09D903" Text="防腐管理" NavigateUrl=""><TreeNode id="0BDA0F5D-BB5B-4F25-8C67-42C654A8A6A2" Text="防腐委托单" NavigateUrl="CLGL/AntiCorrosionTrust.aspx"></TreeNode>
<TreeNode id="7B62483A-4B6F-4A8C-9C61-5D0E2B4B7C31" Text="防腐检查记录" NavigateUrl="CLGL/AntiCorrosionCheckRecord.aspx"></TreeNode>
</TreeNode>
<TreeNode id="9579C717-769E-4CC0-9E54-EE03D87C15A5" Text="库存管理" NavigateUrl=""><TreeNode id="803F9828-52FA-4EF7-99C7-ADA99DADE9FB" Text="库存管理" NavigateUrl="CLGL/MaterialStock.aspx"></TreeNode>
<TreeNode id="D15E534F-98F3-4B8A-8656-EAF165DE917F" Text="盘点" NavigateUrl="CLGL/MaterialStock.aspx"></TreeNode>
<TreeNode id="C05EF3BE-AB13-4852-B2AA-1095BE4EEB2F" Text="到货分析" NavigateUrl="CLGL/ArrivalStatistics.aspx"></TreeNode>
</TreeNode>
</TreeNode>
<TreeNode id="0FC79768-7235-4E8C-AA7F-B33B85AD90D5" Text="施工准备" NavigateUrl=""><TreeNode id="3EFCE9C3-1983-4AEC-8FA1-D7A90F08CBCB" Text="焊接人员管理" NavigateUrl=""><TreeNode id="1908E4C9-4A63-4A6C-6666-DA4910C2A8C7" Text="焊工管理" NavigateUrl="HJGL/PersonManage/WelderManage.aspx"></TreeNode>
<TreeNode id="13F11D51-1B54-400F-BDBB-36685BC94819" Text="无损检测工管理" NavigateUrl="HJGL/PersonManage/CheckerManage.aspx"></TreeNode>
<TreeNode id="0FC79768-7235-4E8C-AA7F-B33B85AD90D5" Text="施工准备" NavigateUrl=""><TreeNode id="3EFCE9C3-1983-4AEC-8FA1-D7A90F08CBCB" Text="焊接人员管理" NavigateUrl=""><TreeNode id="1908E4C9-4A63-4A6C-6666-DA4910C2A8C7" Text="焊工管理" NavigateUrl="CQMS/PersonManage/WelderManage.aspx"></TreeNode>
<TreeNode id="13F11D51-1B54-400F-BDBB-36685BC94819" Text="无损检测工管理" NavigateUrl="CQMS/PersonManage/CheckerManage.aspx"></TreeNode>
</TreeNode>
<TreeNode id="63CD1C52-1A87-4946-9CA7-8C3C2CB0CA2E" Text="焊接工艺规程编制" NavigateUrl="HJGL/WPQ/WPQList.aspx"></TreeNode>
<TreeNode id="66290870-2B12-46CA-8E5D-8CB7233ACB8C" Text="焊接施工基础数据录入" NavigateUrl="HJGL/WeldingManage/WeldingConDate.aspx"></TreeNode>
-18
View File
@@ -53,24 +53,6 @@
<TreeNode id="3EC2676A-70EB-400E-BE17-EEBBA0B7E9D7" Text="安全巡检类型定义" NavigateUrl="BaseInfo/HazardRegisterTypes.aspx"></TreeNode>
<TreeNode id="F004D9B0-6E6A-41E0-88F1-2306BB6397C6" Text="本部检查项" NavigateUrl="BaseInfo/CheckTemplate.aspx"></TreeNode>
</TreeNode>
<TreeNode id="85DFE1D3-9E68-46B5-87E5-A525698F2F5F" Text="焊接设置" NavigateUrl=""><TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0013" Text="管道材质定义" NavigateUrl="HJGL/BaseInfo/Material.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0011" Text="管道规格定义" NavigateUrl="HJGL/BaseInfo/Control.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0010" Text="焊接方法定义" NavigateUrl="HJGL/BaseInfo/WeldingMethod.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0004" Text="焊接耗材定义" NavigateUrl="HJGL/BaseInfo/Consumables.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0008" Text="焊缝类型定义" NavigateUrl="HJGL/BaseInfo/Weld.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0012" Text="坡口类型定义" NavigateUrl="HJGL/BaseInfo/Groove.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0003" Text="焊接位置定义" NavigateUrl="HJGL/BaseInfo/WeldingLocation.aspx"></TreeNode>
<TreeNode id="D68AE881-7472-4C48-953D-E13C46D6E2A4" Text="焊接缺陷定义" NavigateUrl="HJGL/BaseInfo/Defect.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0006" Text="探伤类型定义" NavigateUrl="HJGL/BaseInfo/Testing.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0007" Text="探伤比例定义" NavigateUrl="HJGL/BaseInfo/Detection.aspx"></TreeNode>
<TreeNode id="8IDKGJE2-09B1-4607-BC6D-865CE48F0015" Text="试压类型定义" NavigateUrl="HJGL/BaseInfo/Pressure.aspx"></TreeNode>
<TreeNode id="F480545B-371A-4949-85F8-92B2CA75A044" Text="试验介质" NavigateUrl="HJGL/BaseInfo/TestMedium.aspx"></TreeNode>
<TreeNode id="49852102-F148-44FB-95F6-EFBE32708276" Text="管道吹洗方法定义" NavigateUrl="HJGL/BaseInfo/PurgeMethod.aspx"></TreeNode>
<TreeNode id="C587E930-4FBC-48CE-8BF9-7CB8164C207C" Text="压力管道级别定义" NavigateUrl="HJGL/BaseInfo/PressurePipingClass.aspx"></TreeNode>
<TreeNode id="02C1F7EC-B08F-4D3A-801E-EDF8E19ED771" Text="气体保护方式定义" NavigateUrl="HJGL/BaseInfo/GasProtectionMode.aspx"></TreeNode>
<TreeNode id="05336157-BECD-4BA1-989C-A86718574F5E" Text="保护气体定义" NavigateUrl="HJGL/BaseInfo/ProtectionGas.aspx"></TreeNode>
<TreeNode id="55DB671A-7DEB-4DA4-8429-E66AA69DBE7D" Text="材料编码库" NavigateUrl="HJGL/BaseInfo/MaterialCodeLib.aspx"></TreeNode>
</TreeNode>
</TreeNode>
<TreeNode id="75AA6177-8AAD-4AA4-BC4E-3883FB095A65" Text="项目设置" NavigateUrl=""><TreeNode id="B830399C-CA36-4C23-A170-21E556D052DD" Text="项目成立" NavigateUrl="ProjectData/ProjectSet.aspx"></TreeNode>
</TreeNode>
+734 -10
View File
@@ -1,4 +1,5 @@
using System;
using System;
using System.Collections.Generic;
namespace Model
{
@@ -7,30 +8,77 @@ namespace Model
/// </summary>
public class PreWeldJointItem
{
/// <summary>
/// 焊口ID
/// </summary>
public string WeldJointId { get; set; }
/// <summary>
/// 焊口编号
/// </summary>
public string WeldJointCode { get; set; }
/// <summary>
/// 管线ID
/// </summary>
public string PipelineId { get; set; }
/// <summary>
/// 管线编号
/// </summary>
public string PipelineCode { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 项目名称
/// </summary>
public string ProjectName { get; set; }
/// <summary>
/// 防腐代码字典ID
/// </summary>
public string PaintId { get; set; }
/// <summary>
/// 防腐代码
/// </summary>
public string PaintCode { get; set; }
/// <summary>
/// 坡口类型ID
/// </summary>
public string GrooveTypeId { get; set; }
/// <summary>
/// 坡口类型编码
/// </summary>
public string GrooveTypeCode { get; set; }
/// <summary>
/// 坡口类型名称
/// </summary>
public string GrooveTypeName { get; set; }
/// <summary>
/// 坡口加工类型
/// </summary>
public string GrooveProcessType { get; set; }
/// <summary>
/// 坡口角度
/// </summary>
public decimal? GrooveAngle { get; set; }
/// <summary>
/// 组对间隙
/// </summary>
public decimal? FitupGap { get; set; }
/// <summary>
/// 错边量
/// </summary>
public decimal? Misalignment { get; set; }
/// <summary>
@@ -42,85 +90,761 @@ namespace Model
/// 组对抽检附件路径
/// </summary>
public string FitupAttachUrl1 { get; set; }
/// <summary>
/// 焊前抽检材料信息
/// </summary>
public List<PreWeldMaterialItem> preWeldMaterialItems { get; set; }
}
/// <summary>
/// 下料抽检保存参数
/// 焊前抽检材料信息
/// </summary>
public class PreWeldMaterialItem
{
/// <summary>
/// 材料编码
/// </summary>
public string MaterialCode { get; set; }
/// <summary>
/// 材料名称
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 材料规格
/// </summary>
public string MaterialSpec { get; set; }
/// <summary>
/// 材质
/// </summary>
public string MaterialMade { get; set; }
/// <summary>
/// 材料定义
/// </summary>
public string MaterialDef { get; set; }
/// <summary>
/// 材料单位
/// </summary>
public string MaterialUnit { get; set; }
/// <summary>
/// 炉号
/// </summary>
public string HeatNo { get; set; }
/// <summary>
/// 批号
/// </summary>
public string BatchNo { get; set; }
}
/// <summary>
/// 下料抽检保存入参
/// </summary>
public class PreWeldCuttingCheckInput
{
/// <summary>
/// 下料检查记录ID;为空时新增,不为空时修改对应记录
/// </summary>
public string CuttingCheckId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 焊口ID
/// </summary>
public string WeldJointId { get; set; }
/// <summary>
/// 下料长度
/// </summary>
public decimal? CuttingLength { get; set; }
/// <summary>
/// 坡口形式
/// </summary>
public string GrooveForm { get; set; }
/// <summary>
/// 坡口角度
/// </summary>
public decimal? GrooveAngle { get; set; }
/// <summary>
/// 材料编码批次是否准确
/// </summary>
public bool IsMaterialCodeBatchNoAccurate { get; set; }
/// <summary>
/// 材料数量是否准确
/// </summary>
public bool IsMaterialQuantityAccurate { get; set; }
/// <summary>
/// 检查人ID
/// </summary>
public string CheckPerson { get; set; }
/// <summary>
/// 检查时间
/// </summary>
public DateTime? CheckTime { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 附件路径
/// </summary>
public string AttachUrl1 { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string CheckResult { get; set; }
/// <summary>
/// 不合格原因
/// </summary>
public string UnqualifiedReason { get; set; }
/// <summary>
/// 整改要求
/// </summary>
public string RectifyRequirement { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}
/// <summary>
/// 下料抽检返回实体
/// </summary>
public class PreWeldCuttingCheckItem
{
/// <summary>
/// 下料检查记录ID
/// </summary>
public string CuttingCheckId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 焊口ID
/// </summary>
public string WeldJointId { get; set; }
public string PipelineCode { get; set; }
/// <summary>
/// 焊口编号
/// </summary>
public string WeldJointCode { get; set; }
public bool IsMaterialCodeBatchNoAccurate { get; set; }
/// <summary>
/// 管线编号
/// </summary>
public string PipelineCode { get; set; }
public bool IsMaterialQuantityAccurate { get; set; }
/// <summary>
/// 下料长度
/// </summary>
public decimal? CuttingLength { get; set; }
/// <summary>
/// 坡口形式
/// </summary>
public string GrooveForm { get; set; }
/// <summary>
/// 坡口角度
/// </summary>
public decimal? GrooveAngle { get; set; }
/// <summary>
/// 是否合格
/// </summary>
public bool IsQualified { get; set; }
/// <summary>
/// 材料编码批次是否准确
/// </summary>
public bool IsMaterialCodeBatchNoAccurate { get; set; }
/// <summary>
/// 材料数量是否准确
/// </summary>
public bool IsMaterialQuantityAccurate { get; set; }
/// <summary>
/// 检查人ID
/// </summary>
public string CheckPerson { get; set; }
/// <summary>
/// 检查人姓名
/// </summary>
public string CheckPersonName { get; set; }
/// <summary>
/// 检查时间
/// </summary>
public DateTime? CheckTime { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 附件路径
/// </summary>
public string AttachUrl1 { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string CheckResult { get; set; }
/// <summary>
/// 不合格原因
/// </summary>
public string UnqualifiedReason { get; set; }
/// <summary>
/// 整改要求
/// </summary>
public string RectifyRequirement { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}
/// <summary>
/// 组对抽检保存参数
/// 组对抽检保存入参
/// </summary>
public class PreWeldFitupCheckInput
{
/// <summary>
/// 组对检查记录ID;为空时新增,不为空时修改对应记录
/// </summary>
public string FitupCheckId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 焊口ID
/// </summary>
public string WeldJointId { get; set; }
/// <summary>
/// 坡口类型ID
/// </summary>
public string GrooveTypeId { get; set; }
/// <summary>
/// 坡口类型名称
/// </summary>
public string GrooveTypeName { get; set; }
/// <summary>
/// 坡口类型编码
/// </summary>
public string GrooveTypeCode { get; set; }
/// <summary>
/// 坡口加工类型
/// </summary>
public string GrooveProcessType { get; set; }
/// <summary>
/// 坡口角度
/// </summary>
public decimal? GrooveAngle { get; set; }
/// <summary>
/// 组对间隙
/// </summary>
public decimal? FitupGap { get; set; }
/// <summary>
/// 错边量
/// </summary>
public decimal? Misalignment { get; set; }
/// <summary>
/// 焊缝余高
/// </summary>
public decimal? WeldReinforcement { get; set; }
/// <summary>
/// 焊缝高度
/// </summary>
public decimal? WeldHeight { get; set; }
/// <summary>
/// 焊缝宽度
/// </summary>
public decimal? WeldWidth { get; set; }
/// <summary>
/// 表面缺陷
/// </summary>
public string SurfaceDefect { get; set; }
/// <summary>
/// 检查人ID
/// </summary>
public string CheckPerson { get; set; }
/// <summary>
/// 检查时间
/// </summary>
public DateTime? CheckTime { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 附件路径
/// </summary>
public string AttachUrl1 { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string CheckResult { get; set; }
/// <summary>
/// 不合格原因
/// </summary>
public string UnqualifiedReason { get; set; }
/// <summary>
/// 整改要求
/// </summary>
public string RectifyRequirement { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}
/// <summary>
/// 组对抽检返回实体
/// </summary>
public class PreWeldFitupCheckItem
{
/// <summary>
/// 组对检查记录ID
/// </summary>
public string FitupCheckId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 焊口ID
/// </summary>
public string WeldJointId { get; set; }
public string PipelineCode { get; set; }
/// <summary>
/// 焊口编号
/// </summary>
public string WeldJointCode { get; set; }
public string GrooveTypeId { get; set; }
/// <summary>
/// 管线编号
/// </summary>
public string PipelineCode { get; set; }
/// <summary>
/// 坡口类型编码
/// </summary>
public string GrooveTypeCode { get; set; }
/// <summary>
/// 坡口类型ID
/// </summary>
public string GrooveTypeId { get; set; }
/// <summary>
/// 坡口类型名称
/// </summary>
public string GrooveTypeName { get; set; }
/// <summary>
/// 焊缝余高
/// </summary>
public decimal? WeldReinforcement { get; set; }
/// <summary>
/// 焊缝高度
/// </summary>
public decimal? WeldHeight { get; set; }
/// <summary>
/// 焊缝宽度
/// </summary>
public decimal? WeldWidth { get; set; }
/// <summary>
/// 表面缺陷
/// </summary>
public string SurfaceDefect { get; set; }
/// <summary>
/// 坡口加工类型
/// </summary>
public string GrooveProcessType { get; set; }
/// <summary>
/// 坡口角度
/// </summary>
public decimal? GrooveAngle { get; set; }
/// <summary>
/// 组对间隙
/// </summary>
public decimal? FitupGap { get; set; }
/// <summary>
/// 错边量
/// </summary>
public decimal? Misalignment { get; set; }
/// <summary>
/// 检查人ID
/// </summary>
public string CheckPerson { get; set; }
/// <summary>
/// 检查人姓名
/// </summary>
public string CheckPersonName { get; set; }
/// <summary>
/// 检查时间
/// </summary>
public DateTime? CheckTime { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 附件路径
/// </summary>
public string AttachUrl1 { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string CheckResult { get; set; }
/// <summary>
/// 不合格原因
/// </summary>
public string UnqualifiedReason { get; set; }
/// <summary>
/// 整改要求
/// </summary>
public string RectifyRequirement { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
}
/// <summary>
/// 防腐检查保存入参
/// </summary>
public class AntiCorrosionCheckRecordInput
{
/// <summary>
/// 防腐检查记录ID
/// </summary>
public string AntiCorrosionCheckId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 材料主数据ID
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 材料编码
/// </summary>
public string MaterialCode { get; set; }
/// <summary>
/// 防腐等级
/// </summary>
public string AnticorrosionLevel { get; set; }
/// <summary>
/// 防腐代码字典ID
/// </summary>
public string PaintId { get; set; }
/// <summary>
/// 膜厚
/// </summary>
public decimal? FilmThickness { get; set; }
/// <summary>
/// 喷砂信息
/// </summary>
public string SandBlasting { get; set; }
/// <summary>
/// 除锈喷砂信息
/// </summary>
public string RustSandBlasting { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string CheckResult { get; set; }
/// <summary>
/// 检查人ID
/// </summary>
public string CheckPerson { get; set; }
/// <summary>
/// 检查时间
/// </summary>
public DateTime? CheckTime { get; set; }
/// <summary>
/// 不合格原因
/// </summary>
public string UnqualifiedReason { get; set; }
/// <summary>
/// 整改要求
/// </summary>
public string RectifyRequirement { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 附件路径
/// </summary>
public string AttachUrl1 { get; set; }
}
/// <summary>
/// 防腐检查返回实体
/// </summary>
public class AntiCorrosionCheckRecordItem
{
/// <summary>
/// 防腐检查记录ID
/// </summary>
public string AntiCorrosionCheckId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId { get; set; }
/// <summary>
/// 单位工程ID
/// </summary>
public string UnitWorkId { get; set; }
/// <summary>
/// 材料主数据ID
/// </summary>
public string MaterialId { get; set; }
/// <summary>
/// 材料编码
/// </summary>
public string MaterialCode { get; set; }
/// <summary>
/// 材料名称
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 材料规格
/// </summary>
public string MaterialSpec { get; set; }
/// <summary>
/// 材质
/// </summary>
public string MaterialMade { get; set; }
/// <summary>
/// 材料定义
/// </summary>
public string MaterialDef { get; set; }
/// <summary>
/// 材料单位
/// </summary>
public string MaterialUnit { get; set; }
/// <summary>
/// 炉批号
/// </summary>
public string HeatNo { get; set; }
/// <summary>
/// 批次号
/// </summary>
public string BatchNo { get; set; }
/// <summary>
/// 材料编码库代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 防腐等级
/// </summary>
public string AnticorrosionLevel { get; set; }
/// <summary>
/// 防腐代码字典ID
/// </summary>
public string PaintId { get; set; }
/// <summary>
/// 涂漆代码
/// </summary>
public string PaintCode { get; set; }
/// <summary>
/// 底漆
/// </summary>
public string Primer { get; set; }
/// <summary>
/// 中间漆
/// </summary>
public string IntermediatePaint { get; set; }
/// <summary>
/// 面漆
/// </summary>
public string Topcoat { get; set; }
/// <summary>
/// 颜色编码
/// </summary>
public string ColorCode { get; set; }
/// <summary>
/// 膜厚
/// </summary>
public decimal? FilmThickness { get; set; }
/// <summary>
/// 喷砂信息
/// </summary>
public string SandBlasting { get; set; }
/// <summary>
/// 除锈喷砂信息
/// </summary>
public string RustSandBlasting { get; set; }
/// <summary>
/// 检查结果
/// </summary>
public string CheckResult { get; set; }
/// <summary>
/// 检查人ID
/// </summary>
public string CheckPerson { get; set; }
/// <summary>
/// 检查人姓名
/// </summary>
public string CheckPersonName { get; set; }
/// <summary>
/// 检查时间
/// </summary>
public DateTime? CheckTime { get; set; }
/// <summary>
/// 不合格原因
/// </summary>
public string UnqualifiedReason { get; set; }
/// <summary>
/// 整改要求
/// </summary>
public string RectifyRequirement { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 创建人ID
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 附件路径
/// </summary>
public string AttachUrl1 { get; set; }
}
}
@@ -1,7 +1,7 @@
namespace Model
{
public partial class View_HJGL_WeldJoint
{
{
/// <summary>
/// 焊前附件路径
/// </summary>
@@ -11,5 +11,14 @@ namespace Model
/// 焊后附件路径
/// </summary>
public string PostWeldAttachUrl { get; set; }
/// <summary>
/// 防腐等级代码
/// </summary>
public string PaintCode { get; set; }
/// <summary>
/// 防腐等级字典ID
/// </summary>
public string PaintId { get; set; }
}
}
@@ -1,85 +0,0 @@
using System;
using System.Data.Linq.Mapping;
namespace Model
{
public partial class Tw_InOutPlanMaster
{
private string _WarehouseId;
[Column(Storage = "_WarehouseId", DbType = "NVarChar(50)")]
public string WarehouseId
{
get { return this._WarehouseId; }
set
{
if (this._WarehouseId != value)
{
this.SendPropertyChanging();
this._WarehouseId = value;
this.SendPropertyChanged("WarehouseId");
}
}
}
}
public partial class Tw_InputMaster
{
private string _WarehouseId;
[Column(Storage = "_WarehouseId", DbType = "NVarChar(50)")]
public string WarehouseId
{
get { return this._WarehouseId; }
set
{
if (this._WarehouseId != value)
{
this.SendPropertyChanging();
this._WarehouseId = value;
this.SendPropertyChanged("WarehouseId");
}
}
}
}
public partial class Tw_OutputMaster
{
private string _WarehouseId;
[Column(Storage = "_WarehouseId", DbType = "NVarChar(50)")]
public string WarehouseId
{
get { return this._WarehouseId; }
set
{
if (this._WarehouseId != value)
{
this.SendPropertyChanging();
this._WarehouseId = value;
this.SendPropertyChanged("WarehouseId");
}
}
}
}
public partial class Tw_MaterialStock
{
private string _WarehouseId;
[Column(Storage = "_WarehouseId", DbType = "NVarChar(50)")]
public string WarehouseId
{
get { return this._WarehouseId; }
set
{
if (this._WarehouseId != value)
{
this.SendPropertyChanging();
this._WarehouseId = value;
this.SendPropertyChanged("WarehouseId");
}
}
}
}
}
+1249 -1261
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -233,7 +233,6 @@
<Compile Include="CLGL\Tw_MaterialStockOutput.cs" />
<Compile Include="CLGL\Tw_OutHistoryDataIn.cs" />
<Compile Include="CLGL\Tw_OutHistoryImportRow.cs" />
<Compile Include="CLGL\Tw_WarehouseIdExtensions.cs" />
<Compile Include="CLGL\Tw_PipeLineMat.cs" />
<Compile Include="CLGL\AntiCorrosionTrustOutput.cs" />
<Compile Include="CLGL\AntiCorrosionTrustDetailOutput.cs" />
@@ -338,4 +337,4 @@
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>
@@ -0,0 +1,89 @@
using BLL;
using System;
using System.Web.Http;
namespace WebAPI.Controllers.HJGL.WeldingManage
{
/// <summary>
/// 除锈防腐检查接口。
/// </summary>
public class AntiCorrosionCheckController : ApiController
{
/// <summary>
/// 根据材料编码获取当前材料的所有除锈防腐记录。
/// </summary>
public Model.ResponeData GetRecordsByMaterialCode(string materialCode, string projectId)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.GetAntiCorrosionChecksByMaterialCode(materialCode, projectId);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
/// <summary>
/// 按焊口获取防腐检查记录列表
/// </summary>
/// <param name="weldJointId"></param>
/// <returns></returns>
public Model.ResponeData GetRecordsByWeldJointId(string weldJointId)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.GetAntiCorrosionChecksByWeldJointId(weldJointId);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
/// <summary>
/// 获取可用防腐代码。
/// </summary>
public Model.ResponeData GetPaintCodeList()
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.GetPaintCodeList();
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
/// <summary>
/// 保存一条除锈防腐检查记录。
/// </summary>
[HttpPost]
public Model.ResponeData SaveRecord([FromBody] Model.AntiCorrosionCheckRecordInput item)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.SaveAntiCorrosionCheck(item);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
}
}
@@ -0,0 +1,51 @@
using BLL;
using System;
using System.Web.Http;
namespace WebAPI.Controllers.HJGL.WeldingManage
{
/// <summary>
/// 管道下料检查接口。
/// </summary>
public class PreWeldCuttingCheckController : ApiController
{
/// <summary>
/// 根据焊口ID获取当前焊口的所有下料检查记录。
/// </summary>
public Model.ResponeData GetRecordsByWeldJointId(string weldJointId)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.GetCuttingChecksByWeldJointId(weldJointId);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
/// <summary>
/// 保存一条管道下料检查记录。
/// </summary>
[HttpPost]
public Model.ResponeData SaveRecord([FromBody] Model.PreWeldCuttingCheckInput item)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.SaveCuttingCheck(item);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
}
}
@@ -0,0 +1,51 @@
using BLL;
using System;
using System.Web.Http;
namespace WebAPI.Controllers.HJGL.WeldingManage
{
/// <summary>
/// 组对检查接口。
/// </summary>
public class PreWeldFitupCheckController : ApiController
{
/// <summary>
/// 根据焊口ID获取当前焊口的所有组对检查记录。
/// </summary>
public Model.ResponeData GetRecordsByWeldJointId(string weldJointId)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.GetFitupChecksByWeldJointId(weldJointId);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
/// <summary>
/// 保存一条组对检查记录。
/// </summary>
[HttpPost]
public Model.ResponeData SaveRecord([FromBody] Model.PreWeldFitupCheckInput item)
{
var responeData = new Model.ResponeData();
try
{
responeData.data = APIPreWeldInspectionService.SaveFitupCheck(item);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
}
}
@@ -10,7 +10,7 @@ namespace WebAPI.Controllers.HJGL.WeldingManage
public class PreWeldInspectionController : ApiController
{
/// <summary>
/// 根据焊口ID获取焊前抽检基础信息
/// 根据焊口ID获取焊前基础信息
/// </summary>
/// <param name="WeldJointId">焊口ID</param>
/// <returns></returns>
@@ -28,50 +28,6 @@ namespace WebAPI.Controllers.HJGL.WeldingManage
}
return responeData;
}
/// <summary>
/// 保存下料抽检记录
/// </summary>
/// <param name="item">下料抽检参数</param>
/// <returns></returns>
[HttpPost]
public Model.ResponeData SaveCuttingCheck([FromBody] Model.PreWeldCuttingCheckItem item)
{
var responeData = new Model.ResponeData();
try
{
APIPreWeldInspectionService.SaveCuttingCheck(item);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
/// <summary>
/// 保存组对抽检记录
/// </summary>
/// <param name="item">组对抽检参数</param>
/// <returns></returns>
[HttpPost]
public Model.ResponeData SaveFitupCheck([FromBody] Model.PreWeldFitupCheckItem item)
{
var responeData = new Model.ResponeData();
try
{
APIPreWeldInspectionService.SaveFitupCheck(item);
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
}
return responeData;
}
}
}
}
+4 -1
View File
@@ -196,6 +196,7 @@
<Compile Include="Controllers\HJGL\PreDesign\PackagingManageController.cs" />
<Compile Include="Controllers\HJGL\PreDesign\PipelineComponentController.cs" />
<Compile Include="Controllers\HJGL\PreDesign\TrainNumberManageController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\PreWeldInspectionController.cs" />
<Compile Include="Controllers\HSSE\DCGLCheckRectifyController.cs" />
<Compile Include="Controllers\HTGL\HTGLPersonController.cs" />
<Compile Include="Controllers\Person\PersonCheckController.cs" />
@@ -213,7 +214,9 @@
<Compile Include="Controllers\HJGL\HotProcessHardController.cs" />
<Compile Include="Controllers\HJGL\NDETrustController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\PipeJointController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\PreWeldInspectionController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\AntiCorrosionCheckController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\PreWeldCuttingCheckController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\PreWeldFitupCheckController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\PreWeldingDailyController.cs" />
<Compile Include="Controllers\HJGL\WeldingManage\ReportQueryController.cs" />
<Compile Include="Controllers\HJGL\TestPackageController.cs" />