feat: 完善焊接质量检查和材料管理
补齐焊前专项审核和焊缝外观检测流程,统一质检查询、附件处理与材料明细导出,提升业务数据追溯和组件匹配使用效率。
This commit is contained in:
@@ -523,7 +523,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
&& x.PipelineId == item.PipelineId
|
||||
&& x.PrefabricatedComponents == item.PrefabricatedComponents
|
||||
&& x.PipeArea == item.PipeArea
|
||||
&& (string.IsNullOrEmpty(item.MaterialCode) || x.MaterialCode == item.MaterialCode)
|
||||
// && (string.IsNullOrEmpty(item.MaterialCode) || x.MaterialCode == item.MaterialCode)
|
||||
select x;
|
||||
if (pipeLineMat.Count() == 0 || pipeLineMat == null)
|
||||
{
|
||||
@@ -533,12 +533,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
else
|
||||
{
|
||||
var oldPipeLineMat = pipeLineMat.First();
|
||||
item.PipeLineMatId = oldPipeLineMat.PipeLineMatId;
|
||||
if (string.IsNullOrEmpty(item.MaterialCode))
|
||||
oldPipeLineMat.Number=item.Number;
|
||||
oldPipeLineMat.MaterialCode2 = item.MaterialCode2;
|
||||
if (!string.IsNullOrEmpty(item.MaterialCode))
|
||||
{
|
||||
item.MaterialCode = oldPipeLineMat.MaterialCode;
|
||||
oldPipeLineMat.MaterialCode = item.MaterialCode;
|
||||
}
|
||||
BLL.PipelineMatService.UpdatePipeLineMat(item);
|
||||
BLL.PipelineMatService.UpdatePipeLineMat(oldPipeLineMat);
|
||||
}
|
||||
BLL.HJGL_PipelineComponentService.SyncPipelineComponentByMatId(item.PipeLineMatId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeldAppearanceCheck.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.WeldAppearanceCheck" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title>焊缝外观检测记录</title>
|
||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
<link href="../../res/css/viewer.min.css" rel="stylesheet" />
|
||||
<script src="../../res/js/viewer.min.js" type="text/javascript"></script>
|
||||
<style type="text/css">
|
||||
.img {
|
||||
cursor: zoom-in;
|
||||
object-fit: cover;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
|
||||
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
|
||||
ShowHeader="false" Layout="VBox">
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" runat="server" BoxFlex="1" ShowBorder="true" ShowHeader="false"
|
||||
EnableColumnLines="true" DataKeyNames="AppearanceCheckId" DataIDField="AppearanceCheckId"
|
||||
AllowPaging="true" IsDatabasePaging="true" PageSize="15"
|
||||
OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true"
|
||||
OnRowDoubleClick="Grid1_RowDoubleClick">
|
||||
<Toolbars>
|
||||
<f:Toolbar runat="server">
|
||||
<Items>
|
||||
<f:TextBox ID="txtPipelineCode" runat="server" Label="管线号" Width="250px"
|
||||
LabelWidth="70px" />
|
||||
<f:TextBox ID="txtWeldJointCode" runat="server" Label="焊口号" Width="220px"
|
||||
LabelWidth="70px" />
|
||||
<f:DropDownList ID="ddlQualified" runat="server" Label="是否合格" Width="190px"
|
||||
LabelWidth="80px">
|
||||
<f:ListItem Text="全部" Value="" />
|
||||
<f:ListItem Text="合格" Value="1" />
|
||||
<f:ListItem Text="不合格" Value="0" />
|
||||
</f:DropDownList>
|
||||
<f:Button ID="btnQuery" runat="server" Text="查询" Icon="SystemSearch"
|
||||
OnClick="btnQuery_Click" />
|
||||
<f:ToolbarFill runat="server" />
|
||||
<f:Button ID="btnNew" runat="server" Text="新增" Icon="Add"
|
||||
OnClick="btnNew_Click" />
|
||||
<f:Button ID="btnEdit" runat="server" Text="修改" Icon="Pencil"
|
||||
OnClick="btnEdit_Click" />
|
||||
<f:Button ID="btnDelete" runat="server" Text="删除" Icon="Delete"
|
||||
ConfirmText="确认删除选中的外观检测记录?" OnClick="btnDelete_Click" />
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
<Columns>
|
||||
<f:RowNumberField Width="60px" HeaderText="序号" TextAlign="Center" />
|
||||
<f:RenderField Width="220px" DataField="PipelineCode" HeaderText="管线号" />
|
||||
<f:RenderField Width="130px" DataField="WeldJointCode" HeaderText="焊口号" />
|
||||
<f:RenderField Width="100px" DataField="QualifiedText" HeaderText="外观是否合格"
|
||||
TextAlign="Center" />
|
||||
<f:RenderField Width="120px" DataField="CheckPersonName" HeaderText="检测人"
|
||||
TextAlign="Center" />
|
||||
<f:RenderField Width="170px" DataField="CheckTime" FieldType="Date"
|
||||
RendererArgument="yyyy-MM-dd HH:mm" HeaderText="检测时间" TextAlign="Center" />
|
||||
<f:TemplateField ColumnID="AttachUrl" MinWidth="120px" HeaderText="照片"
|
||||
HeaderTextAlign="Center" TextAlign="Center">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lbAttachUrl" runat="server"
|
||||
Text='<%# ConvertImageUrlByImage(Eval("AttachUrl")) %>'></asp:Label>
|
||||
</ItemTemplate>
|
||||
</f:TemplateField>
|
||||
<f:RenderField Width="300px" DataField="Remark" HeaderText="备注" />
|
||||
</Columns>
|
||||
</f:Grid>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
<f:Window ID="Window1" Title="焊缝外观检测" Hidden="true" EnableIFrame="true"
|
||||
EnableMaximize="true" Target="Top" runat="server" OnClose="Window1_Close" IsModal="true"
|
||||
Width="760px" Height="560px" />
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
var gridImageSelector = '#<%= Grid1.ClientID %> img.img';
|
||||
|
||||
F.ready(function () {
|
||||
$(document).off('click.weldappearance', gridImageSelector)
|
||||
.on('click.weldappearance', gridImageSelector, function () {
|
||||
var imageUrl = $(this).attr('src');
|
||||
if (!imageUrl) {
|
||||
return;
|
||||
}
|
||||
|
||||
var container = document.createElement('div');
|
||||
var image = document.createElement('img');
|
||||
container.style.display = 'none';
|
||||
image.src = imageUrl;
|
||||
container.appendChild(image);
|
||||
document.body.appendChild(container);
|
||||
|
||||
var viewer = new Viewer(image);
|
||||
viewer.show();
|
||||
viewer.on('hidden', function () {
|
||||
document.body.removeChild(container);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,85 @@
|
||||
using BLL;
|
||||
using System;
|
||||
using System.Web;
|
||||
|
||||
namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
public partial class WeldAppearanceCheck : PageBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack) BindGrid();
|
||||
}
|
||||
|
||||
private void BindGrid()
|
||||
{
|
||||
var result = WeldAppearanceCheckService.GetList(CurrUser.LoginProjectId, txtPipelineCode.Text.Trim(),
|
||||
txtWeldJointCode.Text.Trim(), ddlQualified.SelectedValue, 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 btnQuery_Click(object sender, EventArgs e) { Grid1.PageIndex = 0; BindGrid(); }
|
||||
protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); }
|
||||
|
||||
/// <summary>
|
||||
/// 将附件地址转换为列表缩略图。
|
||||
/// </summary>
|
||||
/// <param name="photoUrl">以逗号分隔的照片地址。</param>
|
||||
/// <returns>照片缩略图HTML。</returns>
|
||||
protected string ConvertImageUrlByImage(object photoUrl)
|
||||
{
|
||||
if (photoUrl == null || string.IsNullOrWhiteSpace(photoUrl.ToString()))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
string html = "<table cellpadding='5' cellspacing='5' style=\"width: 100%\">";
|
||||
foreach (string item in photoUrl.ToString().Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
string imageUrl = "../../" + item.Trim().Replace('\\', '/');
|
||||
html += "<tr><td align='center'><img class='img' width='100' height='100' src='"
|
||||
+ HttpUtility.HtmlAttributeEncode(imageUrl) + "' alt='外观检测照片' /></td></tr>";
|
||||
}
|
||||
return html + "</table>";
|
||||
}
|
||||
|
||||
protected void btnNew_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (HasPower(Const.BtnAdd)) PageContext.RegisterStartupScript(Window1.GetShowReference("WeldAppearanceCheckEdit.aspx"));
|
||||
}
|
||||
|
||||
protected void btnEdit_Click(object sender, EventArgs e) { OpenSelectedRecord(); }
|
||||
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { OpenSelectedRecord(); }
|
||||
|
||||
protected void btnDelete_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!EnsureSelected() || !HasPower(Const.BtnDelete)) return;
|
||||
WeldAppearanceCheckService.Delete(Grid1.SelectedRowID);
|
||||
BindGrid();
|
||||
}
|
||||
|
||||
private void OpenSelectedRecord()
|
||||
{
|
||||
if (!EnsureSelected() || !HasPower(Const.BtnModify)) return;
|
||||
PageContext.RegisterStartupScript(Window1.GetShowReference("WeldAppearanceCheckEdit.aspx?AppearanceCheckId=" + Grid1.SelectedRowID));
|
||||
}
|
||||
|
||||
private bool EnsureSelected()
|
||||
{
|
||||
if (Grid1.SelectedRowIndexArray.Length > 0) return true;
|
||||
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool HasPower(string button)
|
||||
{
|
||||
bool hasPower = CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId,
|
||||
Const.HJGL_WeldAppearanceCheckMenuId, button);
|
||||
if (!hasPower) Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
||||
return hasPower;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
|
||||
|
||||
public partial class WeldAppearanceCheck
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel1;
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
/// <summary>
|
||||
/// txtPipelineCode 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtPipelineCode;
|
||||
|
||||
/// <summary>
|
||||
/// txtWeldJointCode 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtWeldJointCode;
|
||||
|
||||
/// <summary>
|
||||
/// ddlQualified 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlQualified;
|
||||
|
||||
/// <summary>
|
||||
/// btnQuery 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnQuery;
|
||||
|
||||
/// <summary>
|
||||
/// btnNew 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnNew;
|
||||
|
||||
/// <summary>
|
||||
/// btnEdit 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnEdit;
|
||||
|
||||
/// <summary>
|
||||
/// btnDelete 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnDelete;
|
||||
|
||||
/// <summary>
|
||||
/// lbAttachUrl 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbAttachUrl;
|
||||
|
||||
/// <summary>
|
||||
/// Window1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window Window1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeldAppearanceCheckEdit.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.WeldAppearanceCheckEdit" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<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">
|
||||
<Rows>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownList ID="ddlWeldJoint" runat="server" Label="已焊接焊口" Required="true"
|
||||
ShowRedStar="true" EnableEdit="true" LabelWidth="130px" />
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownList ID="ddlQualified" runat="server" Label="外观是否合格" Required="true"
|
||||
ShowRedStar="true" LabelWidth="130px">
|
||||
<f:ListItem Text="合格" Value="1" />
|
||||
<f:ListItem Text="不合格" Value="0" />
|
||||
</f:DropDownList>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownList ID="ddlCheckPerson" runat="server" Label="检测人" Required="true"
|
||||
ShowRedStar="true" EnableEdit="true" LabelWidth="130px" />
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DatePicker ID="dpCheckTime" runat="server" Label="检测时间" Required="true"
|
||||
ShowRedStar="true" LabelWidth="130px" />
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextArea ID="txtRemark" runat="server" Label="备注" MaxLength="500"
|
||||
LabelWidth="130px" />
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:Button ID="btnAttach" runat="server" Text="上传/查看照片(必填)" Icon="TableCell"
|
||||
OnClick="btnAttach_Click" />
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
</Rows>
|
||||
<Toolbars>
|
||||
<f:Toolbar runat="server" Position="Bottom" ToolbarAlign="Right">
|
||||
<Items>
|
||||
<f:Button ID="btnSave" runat="server" Text="保存" Icon="SystemSave"
|
||||
ValidateForms="SimpleForm1" OnClick="btnSave_Click" />
|
||||
<f:Button ID="btnClose" runat="server" Text="关闭" Icon="SystemClose"
|
||||
EnablePostBack="false" />
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
</f:Form>
|
||||
<f:Window ID="WindowAtt" Title="外观检测照片" Hidden="true" EnableIFrame="true"
|
||||
EnableMaximize="true" Target="Parent" runat="server" IsModal="true" Width="720px"
|
||||
Height="440px" />
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,85 @@
|
||||
using BLL;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
public partial class WeldAppearanceCheckEdit : PageBase
|
||||
{
|
||||
private string AppearanceCheckId
|
||||
{
|
||||
get { return (string)ViewState["AppearanceCheckId"]; }
|
||||
set { ViewState["AppearanceCheckId"] = value; }
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (IsPostBack) return;
|
||||
btnClose.OnClientClick = ActiveWindow.GetHideReference();
|
||||
AppearanceCheckId = Request.Params["AppearanceCheckId"] ?? Guid.NewGuid().ToString();
|
||||
BindWeldJoints();
|
||||
Person_PersonsService.InitUserProjectIdUnitIdRoleIdDropDownList(ddlCheckPerson, CurrUser.LoginProjectId, null, null, true);
|
||||
var model = WeldAppearanceCheckService.GetById(AppearanceCheckId);
|
||||
if (model == null)
|
||||
{
|
||||
ddlQualified.SelectedValue = "1";
|
||||
ddlCheckPerson.SelectedValue = CurrUser.PersonId;
|
||||
dpCheckTime.SelectedDate = DateTime.Now;
|
||||
return;
|
||||
}
|
||||
ddlWeldJoint.SelectedValue = model.WeldJointId;
|
||||
ddlQualified.SelectedValue = model.IsQualified ? "1" : "0";
|
||||
ddlCheckPerson.SelectedValue = model.CheckPerson;
|
||||
dpCheckTime.SelectedDate = model.CheckTime;
|
||||
txtRemark.Text = model.Remark;
|
||||
}
|
||||
|
||||
private void BindWeldJoints()
|
||||
{
|
||||
var data = WeldAppearanceCheckService.GetWeldedJoints(CurrUser.LoginProjectId, null, null, 0, 10000)
|
||||
.Select(x => new { x.WeldJointId, Name = x.PipelineCode + " / " + x.WeldJointCode }).ToList();
|
||||
ddlWeldJoint.DataTextField = "Name";
|
||||
ddlWeldJoint.DataValueField = "WeldJointId";
|
||||
ddlWeldJoint.DataSource = data;
|
||||
ddlWeldJoint.DataBind();
|
||||
}
|
||||
|
||||
protected void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId,
|
||||
Const.HJGL_WeldAppearanceCheckMenuId, Const.BtnSave))
|
||||
{
|
||||
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
WeldAppearanceCheckService.Save(new Model.WeldAppearanceCheckInput
|
||||
{
|
||||
AppearanceCheckId = AppearanceCheckId,
|
||||
ProjectId = CurrUser.LoginProjectId,
|
||||
WeldJointId = ddlWeldJoint.SelectedValue,
|
||||
IsQualified = ddlQualified.SelectedValue == "1",
|
||||
CheckPerson = ddlCheckPerson.SelectedValue,
|
||||
CheckTime = dpCheckTime.SelectedDate,
|
||||
Remark = txtRemark.Text.Trim(),
|
||||
CreateUser = CurrUser.PersonId
|
||||
});
|
||||
ShowNotify("保存成功!", MessageBoxIcon.Success);
|
||||
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Alert.ShowInTop(ex.Message, MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnAttach_Click(object sender, EventArgs e)
|
||||
{
|
||||
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(string.Format(
|
||||
"../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/HJGL/WeldingManage/WeldAppearanceCheck&menuId={1}&edit=1",
|
||||
AppearanceCheckId, Const.HJGL_WeldAppearanceCheckMenuId)));
|
||||
}
|
||||
}
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
{
|
||||
|
||||
|
||||
public partial class WeldAppearanceCheckEdit
|
||||
{
|
||||
|
||||
/// <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>
|
||||
/// ddlWeldJoint 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlWeldJoint;
|
||||
|
||||
/// <summary>
|
||||
/// ddlQualified 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlQualified;
|
||||
|
||||
/// <summary>
|
||||
/// ddlCheckPerson 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlCheckPerson;
|
||||
|
||||
/// <summary>
|
||||
/// dpCheckTime 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker dpCheckTime;
|
||||
|
||||
/// <summary>
|
||||
/// txtRemark 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextArea txtRemark;
|
||||
|
||||
/// <summary>
|
||||
/// btnAttach 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnAttach;
|
||||
|
||||
/// <summary>
|
||||
/// btnSave 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnSave;
|
||||
|
||||
/// <summary>
|
||||
/// btnClose 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnClose;
|
||||
|
||||
/// <summary>
|
||||
/// WindowAtt 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Window WindowAtt;
|
||||
}
|
||||
}
|
||||
@@ -91,7 +91,7 @@
|
||||
</f:Button>
|
||||
<f:Button ID="btnStatisticsMat" ToolTip="匹配材料" Icon="TabGo" runat="server" OnClick="btnStatisticsMat_Click" Hidden="true">
|
||||
</f:Button>
|
||||
<f:Button ID="btnExportPartialComponents" Text="导出部分已焊组件" ToolTip="按当前区域导出所选单位工程的部分已焊组件"
|
||||
<f:Button ID="btnExportPartialComponents" Text="导出全部组件" ToolTip="按当前区域导出所选单位工程的全部组件"
|
||||
Icon="TableGo" runat="server" OnClick="btnExportPartialComponents_Click" EnableAjax="false"
|
||||
DisableControlBeforePostBack="true" EnablePostBack="true">
|
||||
</f:Button>
|
||||
|
||||
@@ -728,7 +728,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按当前材料区域导出所选单位工程下全部部分已焊接组件。
|
||||
/// 按当前材料区域导出所选单位工程下全部组件。
|
||||
/// </summary>
|
||||
protected void btnExportPartialComponents_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -748,24 +748,40 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
drpWarehouse.SelectedValue);
|
||||
if (!components.Any())
|
||||
{
|
||||
ShowNotify("当前单位工程和区域下没有部分已焊接组件!", MessageBoxIcon.Warning);
|
||||
ShowNotify("当前单位工程和区域下没有可导出的组件!", MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
var exportData = components.Select(x => new
|
||||
// 列顺序保持未焊口数后追加未焊达因量、材料编码、数量,便于后续导入使用;每个材料编码单独导出一行。
|
||||
var exportData = components.SelectMany(x =>
|
||||
{
|
||||
单位工程 = x.UnitWorkName,
|
||||
区域 = x.PipeAreaText,
|
||||
管线号 = x.PipelineCode,
|
||||
预制组件号 = x.PrefabricatedComponents,
|
||||
总焊口数 = x.TotalWeldJointCount,
|
||||
已焊口数 = x.WeldedWeldJointCount,
|
||||
未焊口数 = x.UnweldedWeldJointCount,
|
||||
组件匹配率 = x.ComponentMatchRateString
|
||||
List<string> materialCodes = SplitExportValues(x.MaterialCode);
|
||||
List<string> materialQuantities = SplitExportValues(x.MaterialQuantity);
|
||||
int materialRowCount = Math.Max(materialCodes.Count, materialQuantities.Count);
|
||||
if (materialRowCount == 0)
|
||||
{
|
||||
materialRowCount = 1;
|
||||
}
|
||||
|
||||
return Enumerable.Range(0, materialRowCount).Select(index => new
|
||||
{
|
||||
单位工程 = x.UnitWorkName,
|
||||
区域 = x.PipeAreaText,
|
||||
管线号 = x.PipelineCode,
|
||||
预制组件号 = x.PrefabricatedComponents,
|
||||
总焊口数 = x.TotalWeldJointCount,
|
||||
已焊口数 = x.WeldedWeldJointCount,
|
||||
未焊口数 = x.UnweldedWeldJointCount,
|
||||
未焊达因量 = x.UnweldedDin ?? 0,
|
||||
材料编码 = index < materialCodes.Count ? materialCodes[index] : string.Empty,
|
||||
数量 = index < materialQuantities.Count ? materialQuantities[index] : string.Empty,
|
||||
组件匹配率 = x.ComponentMatchRateString,
|
||||
组件状态 = GetComponentStatus(x.TotalWeldJointCount, x.UnweldedWeldJointCount)
|
||||
});
|
||||
}).ToList();
|
||||
|
||||
string areaText = PipeArea == PipelineService.PipeArea_SHOP ? "工厂预制" : "现场安装";
|
||||
string fileName = GetSafeFileName(unitWork.UnitWorkName) + "_" + areaText + "_部分已焊组件_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
|
||||
string fileName = GetSafeFileName(unitWork.UnitWorkName) + "_" + areaText + "_全部组件_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
|
||||
string tempDirectory = Path.Combine(Funs.RootPath, @"File\Excel\Temp");
|
||||
Directory.CreateDirectory(tempDirectory);
|
||||
string filePath = Path.Combine(tempDirectory, Guid.NewGuid().ToString("N") + ".xlsx");
|
||||
@@ -794,6 +810,29 @@ namespace FineUIPro.Web.HJGL.WeldingManage
|
||||
return safeFileName;
|
||||
}
|
||||
|
||||
private static List<string> SplitExportValues(string values)
|
||||
{
|
||||
return string.IsNullOrEmpty(values)
|
||||
? new List<string>()
|
||||
: values.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries)
|
||||
.Select(x => x.Trim())
|
||||
.ToList();
|
||||
}
|
||||
|
||||
private static string GetComponentStatus(int totalWeldJointCount, int unweldedWeldJointCount)
|
||||
{
|
||||
// 以总焊口数和未焊口数判断组件进度:全部未焊为未开始、无未焊口为已完成,其余为进行中。
|
||||
if (unweldedWeldJointCount == totalWeldJointCount)
|
||||
{
|
||||
return "未开始";
|
||||
}
|
||||
if (unweldedWeldJointCount == 0)
|
||||
{
|
||||
return "已完成";
|
||||
}
|
||||
return "进行中";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按树节点获取可加入本次匹配的管线。单位工程节点会展开到其下所有试压包,再套用当前仓库和页面筛选条件。
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user