From 0fab034d6bbc5650b021774ff648fa66a51e18aa Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 22 Jul 2026 14:41:15 +0800 Subject: [PATCH 1/9] 1 --- HJGL_DS/BLL/Common/OpenAIhelper.cs | 2 +- HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user | 4 ++-- HJGL_DS/FineUIPro.Web/Web.config | 4 ++-- HJGL_DS/WebAPI/WebAPI.csproj.user | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/HJGL_DS/BLL/Common/OpenAIhelper.cs b/HJGL_DS/BLL/Common/OpenAIhelper.cs index da77afc..e0f9dc3 100644 --- a/HJGL_DS/BLL/Common/OpenAIhelper.cs +++ b/HJGL_DS/BLL/Common/OpenAIhelper.cs @@ -14,7 +14,7 @@ namespace BLL.Common { public class OpenAIhelper { - private const string ApiKey = "sk-a5014a22a49049d1b2179a6c0d8eec1c"; + private const string ApiKey = "sk-8bfd57eaf2c7438388ec584ac86dfb34"; private const string AIURL = "https://api.deepseek.com/chat/completions"; public static string ChatCompletion(string content) diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user index e3436b8..abef49a 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,8 +1,8 @@ - + true - Release|Any CPU + Debug|Any CPU diff --git a/HJGL_DS/FineUIPro.Web/Web.config b/HJGL_DS/FineUIPro.Web/Web.config index 3c98f31..1b40665 100644 --- a/HJGL_DS/FineUIPro.Web/Web.config +++ b/HJGL_DS/FineUIPro.Web/Web.config @@ -11,7 +11,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/HJGL_DS/WebAPI/WebAPI.csproj.user b/HJGL_DS/WebAPI/WebAPI.csproj.user index 28be9c4..a48b337 100644 --- a/HJGL_DS/WebAPI/WebAPI.csproj.user +++ b/HJGL_DS/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU FolderProfile true From 0337679dd3b85b4584c9ade02287116131c80f97 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Thu, 23 Jul 2026 15:34:31 +0800 Subject: [PATCH 2/9] =?UTF-8?q?20260723=20=E7=84=8A=E5=8F=A3=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/HJGLDB_DS_2026-07-23_bwj.sql | 125 +++ .../WeldingManage/HJGL_PW_JointInfoService.cs | 18 + HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj | 9 + .../FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- .../FineUIPro.Web/HJGL/DataIn/JointIn.aspx | 1 + .../FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs | 58 +- .../HJGL/DataIn/JointIn.aspx.designer.cs | 57 +- .../HJGL/WeldingManage/JointInfo.aspx | 17 +- .../HJGL/WeldingManage/JointInfo.aspx.cs | 209 ++-- .../WeldingManage/JointInfo.aspx.designer.cs | 40 +- .../WeldingManage/JointInfoBatchModity.aspx | 172 ++++ .../JointInfoBatchModity.aspx.cs | 899 ++++++++++++++++++ .../JointInfoBatchModity.aspx.designer.cs | 395 ++++++++ .../HJGL/WeldingManage/JointInfoOut.aspx | 3 + .../HJGL/WeldingManage/JointInfoOut.aspx.cs | 268 +++++- .../JointInfoOut.aspx.designer.cs | 39 +- HJGL_DS/FineUIPro.Web/Web.config | 2 +- HJGL_DS/Model/Model.cs | 108 +++ HJGL_DS/WebAPI/WebAPI.csproj.user | 2 +- 19 files changed, 2272 insertions(+), 152 deletions(-) create mode 100644 DataBase/版本日志/HJGLDB_DS_2026-07-23_bwj.sql create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.cs create mode 100644 HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.designer.cs diff --git a/DataBase/版本日志/HJGLDB_DS_2026-07-23_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-07-23_bwj.sql new file mode 100644 index 0000000..1882fb2 --- /dev/null +++ b/DataBase/版本日志/HJGLDB_DS_2026-07-23_bwj.sql @@ -0,0 +1,125 @@ + +ALTER VIEW [dbo].[HJGL_View_JointInfo] +AS +/*ߺϢͼ*/ +SELECT + JointInfo.JOT_ID, + JointInfo.ProjectId, + JointInfo.PointType, + JointInfo.RT1_RepairFilm, + JointInfo.dreportid, + IsoInfo.BSU_ID, + JointInfo.STE_ID, + JOT_JointNo, + JOT_DailyReportNo, --ձ + (CASE WHEN JointInfo.Jot_WeldingDate IS NOT NULL THEN JointInfo.Jot_WeldingDate + ELSE WeldReportMain.JOT_WeldDate END) AS JOT_WeldDate, -- + JointInfo.ISO_ID, + ISO_IsoNo, --ߺ + Unit.UnitCode, + Unit.UnitName, + Steel.STE_Code AS STE_Name1,--1 + Steel1.STE_Code AS STE_Name2,--2 + Welder.WED_Code AS WED_Code1, --溸 + Welder.WED_Name AS WED_Name1, --溸 + FloorWelder.WED_Code AS WED_Code2, --׺ + FloorWelder.WED_Name AS WED_Name2, --׺ + JointInfo.WLO_Code, + (CASE WHEN JointInfo.WLO_Code='F' THEN 'ֳװ' ELSE 'Ԥ' END) AS WLO_Name,-- + JOT_DoneDin, + IS_Compute, + com1.Com_Name AS Component1,--1 + com1.COM_Code AS COM_Code1,--1 + com2.COM_Name AS Component2,--2 + com2.COM_Code AS COM_Code2,--1 + m1.WeldName AS WeldMat,-- + WeldMaterial.WeldName AS WeldSilk,--˿ + batchDetail.PointType AS JointStatus,---״̬ + JOT_Dia, + JOT_Size, + JOT_Sch, + JOT_FactSch, + JOT_JointFlag, + JOT_TrustFlag, + ProessTypes, + JOT_JointDesc, + JointInfo.JOTY_ID, + JointType.JOTY_Name,-- + JointType.JOTY_Code,-- + JointInfo.WME_ID, + WeldMethod.WME_Name AS WME_Name,--ӷ + WeldMethod.WME_Code,--ӷ + SlopeType.JST_Name, --¿ + SlopeType.JST_Code, --¿ʹ + IS_Proess, + (CASE WHEN IS_Proess=1 THEN '' ELSE '' END) AS IS_ProessName, + JOT_PrepareTemp, + JOT_CellTemp, + JOT_LastTemp, + JOT_JointAttribute, + JOT_Location, + batch.BatchCode AS BatchCode,--κ + batchDetail.PointDate AS PointDate,-- + NULL AS CH_TrustCode, NULL AS CH_TrustDate, + --NDTType.NDT_Name as NDT_Name,--̽ + JointInfo.JOT_Remark, + JointInfo.RT_States, + JointInfo.UT_States, + JointInfo.MT_States, + JointInfo.PT_States, + JointInfo.PAUT_States, + (case when (select top 1 IsOK from HJGL_CH_HotProessResult hr where hr.JOT_ID=JointInfo.JOT_ID)=1 then 'ϸ' + else '' end) as HotProessResult, + Servicess.SER_Code,--ʴ + --NDTRate.NDTR_Name as NDTR_Name, --̽˱ + --NDTRate.NDTR_Code, --̽˱ + isoInfo.ISO_TestPress,--ѹ + isoInfo.ISO_DesignPress,--ѹ + isoInfo.ISO_DesignTemperature,--¶ + IsoClass.ISC_IsoCode,--ߵȼ + is_hj= CAST((CASE WHEN JointInfo.DReportID IS NULL THEN '0' ELSE '1' END ) AS BIT), --Ƿ񺸽 + if_dk=CAST((CASE WHEN batchDetail.NDT IS NULL THEN '0' ELSE '1' END) AS BIT), --Ƿ + JointInfo.InstallationId, + JointInfo.NDTR_ID, + JointInfo.IsSpecial, + JointInfo.IsSpecial AS IsSpecialName, --Ƿ + Installation.InstallationName,--װ + NDTRate.NDTR_Name, + JointInfo.Sort1,JointInfo.Sort2,JointInfo.Sort3,JointInfo.Sort4,JointInfo.Sort5 + ,JointType.JOTY_Group, + JointInfo.JOT_Electricity,--ӵ + JointInfo.JOT_Voltage, --ӵѹ + JointInfo.WeldL, --dz + JointInfo.IsGold,--Ƿƽ + JointInfo.JOT_QualifiedLevel, --ϸȼ + Steel.HardQuaStandard--ӲȺϸ׼ +FROM HJGL_PW_JointInfo AS JointInfo +LEFT JOIN HJGL_PW_IsoInfo AS IsoInfo ON IsoInfo.ISO_ID=JointInfo.ISO_ID +LEFT JOIN HJGL_BO_WeldReportMain AS WeldReportMain ON WeldReportMain.DReportID=JointInfo.DReportID +LEFT JOIN HJGL_BS_Steel AS Steel ON Steel.STE_ID=JointInfo.STE_ID +LEFT JOIN HJGL_BS_Steel AS Steel1 ON Steel1.STE_ID=JointInfo.STE_ID2 +LEFT JOIN HJGL_BS_Welder AS Welder ON Welder.WED_ID= JointInfo.JOT_CellWelder +LEFT JOIN HJGL_BS_Welder AS FloorWelder ON FloorWelder.WED_ID=JointInfo.JOT_FloorWelder +--LEFT JOIN HJGL_BS_WeldLocation AS WeldLocation ON WeldLocation.WLO_Code =JointInfo.WLO_Code +LEFT JOIN HJGL_BS_Component AS com1 ON com1.COM_ID=JointInfo.JOT_Component1 +LEFT JOIN HJGL_BS_Component AS com2 ON com2.COM_ID=JointInfo.JOT_Component2 +--LEFT JOIN HJGL_BS_WeldMaterial m1 ON m1.WMT_ID=JointInfo.JOT_WeldMat +--LEFT JOIN HJGL_BS_WeldMaterial AS WeldMaterial ON WeldMaterial.WMT_ID=JointInfo.JOT_WeldSilk +LEFT JOIN View_WeldInfoDropDownLists as m1 on m1.WeldId = JointInfo.JOT_WeldMat and m1.WeldTypeName like '%%' +LEFT JOIN View_WeldInfoDropDownLists as WeldMaterial on WeldMaterial.WeldId = JointInfo.JOT_WeldSilk and WeldMaterial.WeldTypeName like '%˿%' +LEFT JOIN HJGL_BS_JointType AS JointType ON JointType.JOTY_ID=JointInfo.JOTY_ID +LEFT JOIN HJGL_BS_WeldMethod AS WeldMethod ON WeldMethod .WME_ID=JointInfo.WME_ID +LEFT JOIN HJGL_BS_SlopeType AS SlopeType ON SlopeType.JST_ID=JointInfo.JST_ID +LEFT JOIN dbo.HJGL_BO_BatchDetail AS batchDetail ON batchDetail.JOT_ID = JointInfo.JOT_ID +LEFT JOIN dbo.HJGL_BO_Batch AS batch ON batch.BatchId = batchDetail.BatchId +LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=IsoInfo.BSU_ID +--left join HJGL_BS_NDTRate AS NDTRate on NDTRate.NDTR_ID=IsoInfo.NDTR_ID +LEFT JOIN HJGL_BS_Service AS Servicess ON Servicess.SER_ID=IsoInfo.SER_ID +LEFT JOIN HJGL_BS_IsoClass AS IsoClass ON IsoClass.ISC_ID=IsoInfo.ISC_ID +LEFT JOIN Project_Installation AS Installation ON Installation.InstallationId =JointInfo.InstallationId +LEFT JOIN HJGL_BS_NDTRate AS NDTRate ON NDTRate.NDTR_ID =JointInfo.NDTR_ID + + +GO + + diff --git a/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs b/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs index a462f94..757ff32 100644 --- a/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs +++ b/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs @@ -1358,5 +1358,23 @@ namespace BLL && (y.JOTY_Name.Contains("支管连接焊缝") || y.JOTY_Name.Contains("角焊缝")) select x).ToList(); } + + public static string ConvertJointCodeString(string jotIdList) + { + string name = string.Empty; + string[] list = jotIdList.Split(','); + foreach (var item in list) + { + if (!string.IsNullOrEmpty(item)) + { + name += GetJointInfoByJotID(item).JOT_JointNo + ","; + } + } + if (!string.IsNullOrEmpty(name)) + { + name = name.Substring(0, name.LastIndexOf(",")); + } + return name; + } } } diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj index 555f340..73bce3c 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj @@ -58,6 +58,7 @@ true AnyCPU false + false @@ -1304,6 +1305,7 @@ + @@ -6476,6 +6478,13 @@ DetectionPoint.aspx + + JointInfoBatchModity.aspx + ASPXCodeBehind + + + JointInfoBatchModity.aspx + JointInfoBatchUpdate.aspx ASPXCodeBehind diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user index e3436b8..6e29203 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -2,7 +2,7 @@ true - Release|Any CPU + Debug|Any CPU diff --git a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx index a7a96c7..836857e 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx @@ -36,6 +36,7 @@ + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs index 82d7bab..09b8c82 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs @@ -1,4 +1,8 @@ -using System; +using BLL; +using FastReport.Utils; +using NPOI.POIFS.Crypt.Dsig; +using NPOI.SS.Formula.Functions; +using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; @@ -8,7 +12,6 @@ using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; -using BLL; namespace FineUIPro.Web.HJGL.DataIn { public partial class JointIn : PageBase @@ -940,7 +943,56 @@ namespace FineUIPro.Web.HJGL.DataIn } else { - result += "第" + (i + 2).ToString() + "行," + "该焊口已存在" + "\n"; + if (this.cbUpdateIn.Checked) + { + newJointInfo.JOT_JointNo = col2; + if (col8 == "固定") + { + if (newJointInfo.JOT_JointNo.Last() != 'G') + { + newJointInfo.JOT_JointNo = newJointInfo.JOT_JointNo + "G"; + } + } + if (newJointInfo.IsGold == true) + { + if (newJointInfo.JOT_JointNo.Last() != 'H') + { + newJointInfo.JOT_JointNo = newJointInfo.JOT_JointNo + "H"; + } + } + newJointInfo.JOT_ID = getJoint.JOT_ID; + BLL.HJGL_PW_JointInfoService.UpdateJointInfo(newJointInfo); + + // 更新排序字段 + string strSort = @"UPDATE dbo.HJGL_PW_JointInfo SET + Sort1=(case when PATINDEX('[A-Z]%',JOT_JointNo)>0 THEN 'B' + WHEN ISNUMERIC(JOT_JointNo)=1 then 'C' ELSE 'C' END), + Sort2=(CASE WHEN ISNUMERIC(JOT_JointNo)=1 then try_cast(REPLACE(JOT_JointNo,'.','') AS INT) + WHEN ISNUMERIC(SUBSTRING(JOT_JointNo,0,CHARINDEX('Z',JOT_JointNo)))=1 + THEN TRY_CAST(SUBSTRING(JOT_JointNo,0,CHARINDEX('Z',JOT_JointNo)) as int) + WHEN PATINDEX('[0-9]%',JOT_JointNo)>0 then + TRY_CAST(left(JOT_JointNo,PATINDEX('%[^0-9]%',JOT_JointNo)-1) as int) + ELSE 0 END), + Sort3= SUBSTRING(JOT_JointNo,1,1), + Sort4=(CASE WHEN CHARINDEX('Z',JOT_JointNo)>0 and SUBSTRING(JOT_JointNo,1,1)<>'Z' + THEN ISNULL(TRY_CAST(SUBSTRING(replace(JOT_JointNo,'#',''),2,CHARINDEX('Z',JOT_JointNo)-2) as int),0) + WHEN PATINDEX('%[A-G]%',SUBSTRING(replace(JOT_JointNo,'#',''),2,len(JOT_JointNo)))>0 + THEN ISNULL(TRY_CAST(SUBSTRING(JOT_JointNo,2,len(JOT_JointNo)-2) as int),0) + ELSE ISNULL(TRY_CAST(SUBSTRING(replace(JOT_JointNo,'#',''),2,len(JOT_JointNo)) as int),0) END), + Sort5=(CASE WHEN CHARINDEX('Z',JOT_JointNo)>0 + THEN ISNULL(TRY_CAST(SUBSTRING(JOT_JointNo,charindex('Z',JOT_JointNo)+1,len(JOT_JointNo)) AS INT),0) + WHEN PATINDEX('%[A-Y]',SUBSTRING(replace(JOT_JointNo,'#',''),2,len(JOT_JointNo)))>0 + THEN ISNULL(TRY_CAST(SUBSTRING(JOT_JointNo,2,len(JOT_JointNo)-1) as int),0) ELSE 0 END) + WHERE JOT_ID='" + newJointInfo.JOT_ID + "'"; + SQLHelper.ExecutSql(strSort); + + //JOT_IDStr += Funs.DB.HJGL_PW_JointInfo.FirstOrDefault(x => x.ProjectId == getProject.ProjectId && x.ISO_ID == getPWisInfo.ISO_ID && x.JOT_JointNo == col2).JOT_ID + ","; + JOT_IDStr += newJointInfo.JOT_ID + ","; + } + else + { + result += "第" + (i + 2).ToString() + "行," + "该焊口已存在" + "\n"; + } } } errorInfos += result; diff --git a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.designer.cs index e6ed166..335d19a 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HJGL.DataIn { - - - public partial class JointIn { - +namespace FineUIPro.Web.HJGL.DataIn +{ + + + public partial class JointIn + { + /// /// Head1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlHead Head1; - + /// /// form1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// panelCenterRegion 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel panelCenterRegion; - + /// /// Toolbar2 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar2; - + /// /// FileExcel 控件。 /// @@ -74,7 +76,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.FileUpload FileExcel; - + /// /// btnAudit 控件。 /// @@ -83,7 +85,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnAudit; - + /// /// imgbtnImport 控件。 /// @@ -92,7 +94,16 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button imgbtnImport; - + + /// + /// cbUpdateIn 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.CheckBox cbUpdateIn; + /// /// ToolbarFill1 控件。 /// @@ -101,7 +112,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + /// /// imgbtnUpload 控件。 /// @@ -110,7 +121,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button imgbtnUpload; - + /// /// hdFileName 控件。 /// @@ -119,7 +130,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.HiddenField hdFileName; - + /// /// Grid1 控件。 /// @@ -128,7 +139,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// ToolbarSeparator1 控件。 /// @@ -137,7 +148,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -146,7 +157,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -155,7 +166,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -164,7 +175,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// Menu1 控件。 /// @@ -173,7 +184,7 @@ namespace FineUIPro.Web.HJGL.DataIn { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuDelete 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx index 7823936..1c3ed49 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx @@ -71,15 +71,12 @@ - + - - - @@ -95,6 +92,8 @@ + + @@ -102,6 +101,8 @@ + + <%-- --%> @@ -172,8 +173,8 @@ <%----%> - + @@ -384,6 +385,10 @@ Target="top" EnableResize="true" runat="server" OnClose="Window1_Close" IsModal="true" Width="800px" Height="650px"> + /// 定义集合 @@ -115,6 +127,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage this.Grid1.Columns[35].Hidden = true; this.Grid1.Columns[36].Hidden = true; this.Grid1.Columns[37].Hidden = true; + //this.Grid1.Columns[38].Hidden = true; List columns = column.Split(',').ToList(); foreach (var item in columns) @@ -1350,7 +1363,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage list.Remove(rowID); } } - } + } } #endregion @@ -1364,113 +1377,77 @@ namespace FineUIPro.Web.HJGL.WeldingManage if (CommonService.GetAllButtonPowerList(this.ProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDelete)) { // 第一次点击:只打开复选框 - if (this.Grid1.Columns[0].Hidden) + if (this.Grid1.Columns[0].Hidden || SelectedType == "BatchModity") { + list.Clear(); + SelectedType = "Delete"; this.Grid1.Columns[0].Hidden = false; + this.Grid1.Columns[0].HeaderText = "选择删除"; this.BindGrid(); return; } if (list.Count == 0) { - Alert.ShowInTop("请勾选一条记录!", MessageBoxIcon.Warning); + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } - bool isShow = true; - if (list.Count > 1) + if (SelectedType == "Delete") { - isShow = false; - } - string err = string.Empty; - for (int i = 0; i < list.Count; i++) - { - string rowID = list[i]; - string content = judgementDelete(rowID, isShow); - if (string.IsNullOrEmpty(content)) + bool isShow = true; + if (list.Count > 1) { - Model.SGGLDB db = Funs.DB; - var hotProessTrustItem = db.HJGL_CH_HotProessTrustItem.FirstOrDefault(x => x.JOT_ID == rowID); - if (hotProessTrustItem != null) + isShow = false; + } + string err = string.Empty; + for (int i = 0; i < list.Count; i++) + { + string rowID = list[i]; + string content = judgementDelete(rowID, isShow); + if (string.IsNullOrEmpty(content)) { - db.HJGL_CH_HotProessTrustItem.DeleteOnSubmit(hotProessTrustItem); + Model.SGGLDB db = Funs.DB; + var hotProessTrustItem = db.HJGL_CH_HotProessTrustItem.FirstOrDefault(x => x.JOT_ID == rowID); + if (hotProessTrustItem != null) + { + db.HJGL_CH_HotProessTrustItem.DeleteOnSubmit(hotProessTrustItem); + } + var hotProessItem = db.HJGL_HotProessItem.FirstOrDefault(x => x.JOT_ID == rowID); + if (hotProessItem != null) + { + db.HJGL_HotProessItem.DeleteOnSubmit(hotProessItem); + } + var hotProessResult = db.HJGL_CH_HotProessResult.FirstOrDefault(x => x.JOT_ID == rowID); + if (hotProessResult != null) + { + db.HJGL_CH_HotProessResult.DeleteOnSubmit(hotProessResult); + } + db.SubmitChanges(); + BLL.HJGL_BO_BatchDetailService.DeleteBatchDetail(rowID); //删除批明细 + BLL.HJGL_PW_JointInfoService.DeleteJointInfo(rowID); + BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.ProjectId, this.CurrUser.UserId, "删除焊口信息"); } - var hotProessItem = db.HJGL_HotProessItem.FirstOrDefault(x => x.JOT_ID == rowID); - if (hotProessItem != null) + else { - db.HJGL_HotProessItem.DeleteOnSubmit(hotProessItem); + err += content; } - var hotProessResult = db.HJGL_CH_HotProessResult.FirstOrDefault(x => x.JOT_ID == rowID); - if (hotProessResult != null) - { - db.HJGL_CH_HotProessResult.DeleteOnSubmit(hotProessResult); - } - db.SubmitChanges(); - BLL.HJGL_BO_BatchDetailService.DeleteBatchDetail(rowID); //删除批明细 - BLL.HJGL_PW_JointInfoService.DeleteJointInfo(rowID); - BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.ProjectId, this.CurrUser.UserId, "删除焊口信息"); + } + + list.Clear(); + + if (string.IsNullOrEmpty(err)) + { + Alert.ShowInTop("删除成功!", MessageBoxIcon.Success); + // 删除完成后,恢复按钮状态 + this.Grid1.Columns[0].Hidden = true; + SelectedType = string.Empty; } else { - err += content; + Alert.ShowInTop(err, MessageBoxIcon.Warning); } - } - //if (Grid1.SelectedRowIndexArray.Length == 0) - //{ - // Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); - // return; - //} - //bool isShow = true; - //if (Grid1.SelectedRowIndexArray.Length > 1) - //{ - // isShow = false; - //} - //string err = string.Empty; - //foreach (int rowIndex in Grid1.SelectedRowIndexArray) - //{ - // string rowID = Grid1.DataKeys[rowIndex][0].ToString(); - // string content = judgementDelete(rowID, isShow); - // if (string.IsNullOrEmpty(content)) - // { - // Model.SGGLDB db = Funs.DB; - // var hotProessTrustItem = db.HJGL_CH_HotProessTrustItem.FirstOrDefault(x => x.JOT_ID == rowID); - // if (hotProessTrustItem != null) - // { - // db.HJGL_CH_HotProessTrustItem.DeleteOnSubmit(hotProessTrustItem); - // } - // var hotProessItem = db.HJGL_HotProessItem.FirstOrDefault(x => x.JOT_ID == rowID); - // if (hotProessItem != null) - // { - // db.HJGL_HotProessItem.DeleteOnSubmit(hotProessItem); - // } - // var hotProessResult = db.HJGL_CH_HotProessResult.FirstOrDefault(x => x.JOT_ID == rowID); - // if (hotProessResult != null) - // { - // db.HJGL_CH_HotProessResult.DeleteOnSubmit(hotProessResult); - // } - // db.SubmitChanges(); - // BLL.HJGL_BO_BatchDetailService.DeleteBatchDetail(rowID); //删除批明细 - // BLL.HJGL_PW_JointInfoService.DeleteJointInfo(rowID); - // BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "删除焊口信息"); - // } - // else - // { - // err += content; - // } - //} - // 删除完成后,恢复按钮状态 - this.Grid1.Columns[0].Hidden = true; - list.Clear(); - - if (string.IsNullOrEmpty(err)) - { - Alert.ShowInTop("删除成功!", MessageBoxIcon.Success); + this.BindGrid(); } - else - { - Alert.ShowInTop(err, MessageBoxIcon.Warning); - } - - this.BindGrid(); } else { @@ -1503,5 +1480,63 @@ namespace FineUIPro.Web.HJGL.WeldingManage } } + /// + /// 批量修改焊口信息 + /// + /// + /// + protected void btnBatchModity_Click(object sender, EventArgs e) + { + if (CommonService.GetAllButtonPowerList(this.ProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnModify)) + { + // 第一次点击:只打开复选框 + if (this.Grid1.Columns[0].Hidden || SelectedType == "Delete") + { + list.Clear(); + SelectedType = "BatchModity"; + this.Grid1.Columns[0].Hidden = false; + this.Grid1.Columns[0].HeaderText = "选择修改"; + this.BindGrid(); + return; + } + if (SelectedType == "BatchModity") + { + if (list.Count == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + string jotIdList = string.Join(",", list); + PageContext.RegisterStartupScript(Window10.GetShowReference(String.Format("JointInfoBatchModity.aspx?jotIdList={0}", jotIdList, "批量修改 - "))); + + } + //bool isShow = true; + //if (list.Count > 1) + //{ + // isShow = false; + //} + //string err = string.Empty; + //for (int i = 0; i < list.Count; i++) + //{ + // string rowID = list[i]; + // string content = judgementDelete(rowID, isShow); + // if (string.IsNullOrEmpty(content)) + // { + // } + //} + + //if (Grid1.SelectedRowIndexArray.Length == 0) + //{ + // Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); + // return; + //} + //string jotIdList = string.Join(",", Grid1.SelectedRowIDArray); + //PageContext.RegisterStartupScript(Window10.GetShowReference(String.Format("JointInfoBatchModity.aspx?jotIdList={0}", jotIdList, "批量修改 - "))); + } + else + { + ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); + } + } } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs index c8f56b1..9ab0cdc 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs @@ -195,13 +195,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage protected global::FineUIPro.Button btnBatchAdd; /// - /// btnBatchModify 控件。 + /// btnBatchUpdate 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.Button btnBatchModify; + protected global::FineUIPro.Button btnBatchUpdate; /// /// btnBatchDel 控件。 @@ -221,15 +221,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.Button btnOut; - /// - /// btnFileName 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnFileName; - /// /// hdColumn 控件。 /// @@ -293,6 +284,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.ToolbarFill ToolbarFill2; + /// + /// btnBatchModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnBatchModify; + /// /// btnPrint 控件。 /// @@ -320,6 +320,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.Button btnSelectColumn; + /// + /// btnFileName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnFileName; + /// /// Toolbar4 控件。 /// @@ -536,6 +545,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.Window Window9; + /// + /// Window10 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window10; + /// /// Menu1 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx new file mode 100644 index 0000000..7cc4480 --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx @@ -0,0 +1,172 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JointInfoBatchModity.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.JointInfoBatchModity" %> + + + + + + + 批量修改焊口信息 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.cs new file mode 100644 index 0000000..ce7cbcd --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.cs @@ -0,0 +1,899 @@ +using BLL; +using FineUIPro.Web.HJGL.DataIn; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.HJGL.WeldingManage +{ + public partial class JointInfoBatchModity : PageBase + { + #region 定义项 + /// + /// 管线主键 + /// + private string ISO_ID + { + get + { + return (string)ViewState["ISO_ID"]; + } + set + { + ViewState["ISO_ID"] = value; + } + } + #endregion + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + ///初始化下拉框 + this.LoadDropDownList(); + ///初始化显示信息 + this.LoadShowInfo(); + } + } + + #region 加载下拉框 + /// + /// 加载下拉框 + /// + private void LoadDropDownList() + { + ///材质1 + this.ddlSTE1.DataTextField = "STE_Code"; + this.ddlSTE1.DataValueField = "STE_ID"; + this.ddlSTE1.DataSource = BLL.HJGL_MaterialService.GetSteelList(); + this.ddlSTE1.DataBind(); + Funs.FineUIPleaseSelect(this.ddlSTE1); + + ///材质2 + this.ddlSTE2.DataTextField = "STE_Code"; + this.ddlSTE2.DataValueField = "STE_ID"; + this.ddlSTE2.DataSource = BLL.HJGL_MaterialService.GetSteelList(); + this.ddlSTE2.DataBind(); + Funs.FineUIPleaseSelect(this.ddlSTE2); + + ///焊缝类型 + this.ddlJOTY_ID.DataTextField = "JOTY_Name"; + this.ddlJOTY_ID.DataValueField = "JOTY_ID"; + this.ddlJOTY_ID.DataSource = BLL.HJGL_WeldService.GetJointTypeNameList("2"); + this.ddlJOTY_ID.DataBind(); + Funs.FineUIPleaseSelect(this.ddlJOTY_ID); + + ///坡口类型 + this.ddlJST_ID.DataTextField = "JST_Name"; + this.ddlJST_ID.DataValueField = "JST_ID"; + this.ddlJST_ID.DataSource = BLL.HJGL_GrooveService.GetSlopeTypeNameList(); + this.ddlJST_ID.DataBind(); + Funs.FineUIPleaseSelect(this.ddlJST_ID); + + ///焊口属性 + this.ddlJointAttribute.DataTextField = "Text"; + this.ddlJointAttribute.DataValueField = "Value"; + this.ddlJointAttribute.DataSource = BLL.DropListService.HJGL_JointAttributeItem(); + this.ddlJointAttribute.DataBind(); + Funs.FineUIPleaseSelect(this.ddlJointAttribute); + + ///焊接方法 + this.ddlWME_ID.DataTextField = "WME_Name"; + this.ddlWME_ID.DataValueField = "WME_ID"; + this.ddlWME_ID.DataSource = BLL.HJGL_WeldingMethodService.GetWeldMethodNameList(); + this.ddlWME_ID.DataBind(); + Funs.FineUIPleaseSelect(this.ddlWME_ID); + + ///焊接区域 + this.ddlWLO_CODE.DataTextField = "Text"; + this.ddlWLO_CODE.DataValueField = "Value"; + this.ddlWLO_CODE.DataSource = BLL.DropListService.HJGL_WLO_CODEItem(); + this.ddlWLO_CODE.DataBind(); + Funs.FineUIPleaseSelect(this.ddlWLO_CODE); + + ///组件1号 + this.ddlComponent1.DataTextField = "COM_Name"; + this.ddlComponent1.DataValueField = "COM_ID"; + this.ddlComponent1.DataSource = BLL.HJGL_ComponentsService.GetComponentNameList(); + this.ddlComponent1.DataBind(); + Funs.FineUIPleaseSelect(this.ddlComponent1); + + ///组件2号 + this.ddlComponent2.DataTextField = "COM_Name"; + this.ddlComponent2.DataValueField = "COM_ID"; + this.ddlComponent2.DataSource = BLL.HJGL_ComponentsService.GetComponentNameList(); + this.ddlComponent2.DataBind(); + Funs.FineUIPleaseSelect(this.ddlComponent2); + + ///焊丝 + this.ddlWeldSilk.DataTextField = "WeldName"; + this.ddlWeldSilk.DataValueField = "WeldId"; + this.ddlWeldSilk.DataSource = from x in Funs.DB.View_WeldInfoDropDownLists + where x.WeldTypeName.Contains("焊丝") + select x; // BLL.HJGL_ConsumablesService.GetMaterialList("1"); + this.ddlWeldSilk.DataBind(); + Funs.FineUIPleaseSelect(this.ddlWeldSilk); + + ///焊条 + this.ddlWeldMat.DataTextField = "WeldName"; + this.ddlWeldMat.DataValueField = "WeldId"; + this.ddlWeldMat.DataSource = from x in Funs.DB.View_WeldInfoDropDownLists + where x.WeldTypeName.Contains("焊条") + select x; //BLL.HJGL_ConsumablesService.GetMaterialList("2"); + this.ddlWeldMat.DataBind(); + Funs.FineUIPleaseSelect(this.ddlWeldMat); + + List myList = new List(); + myList = BLL.HJGL_PW_JointInfoService.GetProessTypes(); + RadioButtonList1.DataTextField = "Name"; + RadioButtonList1.DataValueField = "Id"; + RadioButtonList1.DataSource = myList; + RadioButtonList1.DataBind(); + + this.drpInstallationId.DataTextField = "Text"; + this.drpInstallationId.DataValueField = "Value"; + this.drpInstallationId.DataSource = BLL.Project_InstallationService.GetInstallationList(this.CurrUser.LoginProjectId); + this.drpInstallationId.DataBind(); + Funs.FineUIPleaseSelect(this.drpInstallationId); + + //探伤比例 + this.drpNDTR_ID.DataTextField = "NDTR_Name"; + this.drpNDTR_ID.DataValueField = "NDTR_ID"; + this.drpNDTR_ID.DataSource = BLL.HJGL_DetectionService.GetNDTRateNameList(); + this.drpNDTR_ID.DataBind(); + Funs.FineUIPleaseSelect(this.drpNDTR_ID); + + //合格等级 + this.drpJOT_QualifiedLevel.DataTextField = "Text"; + this.drpJOT_QualifiedLevel.DataValueField = "Value"; + this.drpJOT_QualifiedLevel.DataSource = BLL.DropListService.HJGL_NDTClassItem(); + this.drpJOT_QualifiedLevel.DataBind(); + Funs.FineUIPleaseSelect(this.drpJOT_QualifiedLevel); + } + #endregion + + #region 加载页面显示信息 + /// + /// 加载页面显示信息 + /// + private void LoadShowInfo() + { + string jotIdStr = Request.Params["jotIdList"]; + if (!string.IsNullOrEmpty(jotIdStr)) + { + var jotIdList = jotIdStr.Split(','); + txtJointNoS.Text = BLL.HJGL_PW_JointInfoService.ConvertJointCodeString(jotIdStr); + var jointInfo = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(jotIdList[0]); + this.ISO_ID = jointInfo.ISO_ID; + if (jointInfo != null) + { + this.txtJointDesc.Text = jointInfo.JOT_JointDesc; + if (!string.IsNullOrEmpty(jointInfo.DReportID)) + { + this.drpNDTR_ID.Enabled = false; + this.drpIsGold.Enabled = false; + } + if (!string.IsNullOrEmpty(jointInfo.STE_ID)) + { + this.ddlSTE1.SelectedValue = jointInfo.STE_ID; + var ste = BLL.HJGL_MaterialService.GetSteelBySteID(jointInfo.STE_ID); + if (ste != null) + { + this.txtHardQuaStandard.Text = ste.HardQuaStandard; + } + } + if (!string.IsNullOrEmpty(jointInfo.STE_ID2)) + { + this.ddlSTE2.SelectedValue = jointInfo.STE_ID2; + } + if (!string.IsNullOrEmpty(jointInfo.JOTY_ID)) + { + this.ddlJOTY_ID.SelectedValue = jointInfo.JOTY_ID; + } + if (!string.IsNullOrEmpty(jointInfo.JST_ID)) + { + this.ddlJST_ID.SelectedValue = jointInfo.JST_ID; + } + if (!string.IsNullOrEmpty(jointInfo.JOT_JointAttribute)) + { + this.ddlJointAttribute.SelectedValue = jointInfo.JOT_JointAttribute; + //if (this.ddlJointAttribute.SelectedValue == "固定") + //{ + // if (this.txtJointNo.Text.Trim().Last() != 'G') + // { + // this.txtJointNo.Text = this.txtJointNo.Text.Trim() + "G"; + // } + //} + //else + //{ + // if (this.txtJointNo.Text.Trim().Last() == 'G') + // { + // this.txtJointNo.Text = this.txtJointNo.Text.Trim().Replace("G", ""); + // } + //} + } + if (!string.IsNullOrEmpty(jointInfo.WME_ID)) + { + this.ddlWME_ID.SelectedValue = jointInfo.WME_ID; + } + this.txtSize.Text = Convert.ToString(jointInfo.JOT_Size); + this.txtDial.Text = (jointInfo.JOT_Dia ?? 0).ToString("N2"); + this.txtSch.Text = jointInfo.JOT_Sch; + if (!string.IsNullOrEmpty(jointInfo.WLO_Code)) + { + this.ddlWLO_CODE.SelectedValue = jointInfo.WLO_Code; + } + if (!string.IsNullOrEmpty(jointInfo.JOT_Component1)) + { + this.ddlComponent1.SelectedValue = jointInfo.JOT_Component1; + } + if (!string.IsNullOrEmpty(jointInfo.JOT_Component2)) + { + this.ddlComponent2.SelectedValue = jointInfo.JOT_Component2; + } + this.txtLastTemp.Text = Convert.ToString(jointInfo.JOT_LastTemp); + this.txtCellTemp.Text = Convert.ToString(jointInfo.JOT_CellTemp); + this.txtPrepareTemp.Text = Convert.ToString(jointInfo.JOT_PrepareTemp); + if (!string.IsNullOrEmpty(jointInfo.JOT_WeldSilk)) + { + this.ddlWeldSilk.SelectedValue = jointInfo.JOT_WeldSilk; + } + if (jointInfo.WeldL != null) + { + this.txtWeldL.Text = jointInfo.WeldL.ToString(); + } + if (!string.IsNullOrEmpty(jointInfo.JOT_WeldMat)) + { + this.ddlWeldMat.SelectedValue = jointInfo.JOT_WeldMat; + } + this.txtElectricity.Text = jointInfo.JOT_Electricity; + this.txtVoltage.Text = jointInfo.JOT_Voltage; + if (!string.IsNullOrEmpty(jointInfo.IS_Proess)) + { + this.drpIS_Proess.SelectedValue = jointInfo.IS_Proess; + if (jointInfo.IS_Proess == "1") + { + this.drpProessTypes.Hidden = false; + if (!string.IsNullOrEmpty(jointInfo.ProessTypes)) + { + string[] proessTypes = jointInfo.ProessTypes.Split('|'); + this.drpProessTypes.Values = proessTypes; + } + } + } + if (jointInfo.IsSpecial == true) + { + this.drpIsSpecial.SelectedValue = "1"; + } + else + { + this.drpIsSpecial.SelectedValue = "0"; + } + this.txtRemark.Text = jointInfo.JOT_Remark; + if (!string.IsNullOrEmpty(jointInfo.InstallationId)) + { + this.drpInstallationId.Items.Clear(); + this.drpInstallationId.DataTextField = "Text"; + this.drpInstallationId.DataValueField = "Value"; + this.drpInstallationId.DataSource = BLL.Project_InstallationService.GetInstallationList(jointInfo.ProjectId); + this.drpInstallationId.DataBind(); + Funs.FineUIPleaseSelect(this.drpInstallationId); + this.drpInstallationId.SelectedValue = jointInfo.InstallationId; + } + if (!string.IsNullOrEmpty(jointInfo.NDTR_ID)) + { + this.drpNDTR_ID.SelectedValue = jointInfo.NDTR_ID; + } + if (!string.IsNullOrEmpty(jointInfo.JOT_QualifiedLevel)) + { + this.drpJOT_QualifiedLevel.SelectedValue = jointInfo.JOT_QualifiedLevel; + } + this.txtPressureTestPackageNo.Text = jointInfo.PressureTestPackageNo; + if (jointInfo.IsGold == true) + { + this.drpIsGold.SelectedValue = "1"; + this.drpNDTR_ID.Enabled = false; + } + else + { + this.drpIsGold.SelectedValue = "0"; + } + } + } + } + #endregion + + #region 文本框是否可编辑 + /// + /// 文本框是否可编辑 + /// + /// + private void TextIsReadOnly(bool readOnly) + { + //this.btnSave.Hidden = readOnly; + //this.txtJointNo.Readonly = readOnly; + this.ddlWLO_CODE.Enabled = !readOnly; + this.ddlSTE1.Enabled = !readOnly; + this.ddlSTE2.Enabled = !readOnly; + this.ddlComponent1.Enabled = !readOnly; + this.ddlComponent2.Enabled = !readOnly; + this.txtJointDesc.Readonly = readOnly; + this.ddlJOTY_ID.Enabled = !readOnly; + this.txtSize.Readonly = readOnly; + this.txtDial.Readonly = readOnly; + this.ddlJST_ID.Enabled = !readOnly; + this.txtSch.Readonly = readOnly; + this.txtLastTemp.Readonly = readOnly; + this.txtCellTemp.Readonly = readOnly; + //this.txtPrepareTemp.Readonly = readOnly; + this.ddlJointAttribute.Enabled = !readOnly; + this.ddlWME_ID.Enabled = !readOnly; + this.ddlWeldSilk.Enabled = !readOnly; + this.ddlWeldMat.Enabled = !readOnly; + this.txtElectricity.Readonly = readOnly; + this.txtVoltage.Readonly = readOnly; + this.txtRemark.Readonly = readOnly; + this.drpInstallationId.Enabled = !readOnly; + this.drpNDTR_ID.Enabled = !readOnly; + this.drpJOT_QualifiedLevel.Enabled = !readOnly; + this.drpIsSpecial.Enabled = !readOnly; + this.txtHardQuaStandard.Readonly = readOnly; + this.txtWeldL.Readonly = readOnly; + } + #endregion + + #region 提交按钮 + /// + /// 提交按钮 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnSave)) + { + if (this.drpInstallationId.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.drpInstallationId.SelectedValue)) + { + Alert.ShowInTop("请选择装置!", MessageBoxIcon.Warning); + return; + } + if (this.ddlSTE1.SelectedValue == BLL.Const._Null || string.IsNullOrEmpty(this.ddlSTE1.SelectedValue)) + { + Alert.ShowInTop("请选择材质1!", MessageBoxIcon.Warning); + return; + } + if (this.ddlJOTY_ID.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.ddlJOTY_ID.SelectedValue)) + { + Alert.ShowInTop("请选择焊缝类型!", MessageBoxIcon.Warning); + return; + } + if (this.ddlJST_ID.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.ddlJST_ID.SelectedValue)) + { + Alert.ShowInTop("请选择坡口类型!", MessageBoxIcon.Warning); + return; + } + if (this.ddlJointAttribute.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.ddlJointAttribute.SelectedValue)) + { + Alert.ShowInTop("请选择焊口属性!", MessageBoxIcon.Warning); + return; + } + if (this.ddlWME_ID.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.ddlWME_ID.SelectedValue)) + { + Alert.ShowInTop("请选择焊接方法!", MessageBoxIcon.Warning); + return; + } + if (this.drpNDTR_ID.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.drpNDTR_ID.SelectedValue)) + { + Alert.ShowInTop("请选择探伤比例!", MessageBoxIcon.Warning); + return; + } + if (this.drpJOT_QualifiedLevel.SelectedValue == BLL.Const._Null||string.IsNullOrEmpty(this.drpJOT_QualifiedLevel.SelectedValue)) + { + Alert.ShowInTop("请选择合格等级!", MessageBoxIcon.Warning); + return; + } + + string jotIdStr = Request.Params["jotIdList"]; + if (!string.IsNullOrEmpty(jotIdStr)) + { + Model.SGGLDB db = Funs.DB; + var jotIdList = jotIdStr.Split(','); + foreach (var jotId in jotIdList) + { + Model.HJGL_PW_JointInfo newJointInfo = db.HJGL_PW_JointInfo.FirstOrDefault(x => x.JOT_ID == jotId); + var hotItems = from x in BLL.Funs.DB.HJGL_CH_HotProessTrustItem where x.JOT_ID == jotId select x; + var batchDetail = BLL.HJGL_BO_BatchDetailService.GetBatchDetailByJotId(jotId); + if ((batchDetail != null || hotItems.Count() > 0) && this.CurrUser.UserId != BLL.Const.GlyId) + { + newJointInfo.JOT_PrepareTemp = Funs.GetNewDecimal(this.txtPrepareTemp.Text); + newJointInfo.PressureTestPackageNo = this.txtPressureTestPackageNo.Text; + if (this.drpIS_Proess.SelectedValue != BLL.Const._Null) + { + newJointInfo.IS_Proess = this.drpIS_Proess.SelectedValue; + if (this.drpIS_Proess.SelectedValue == "1") + { + if (drpProessTypes.Values.Length > 0) + { + newJointInfo.ProessTypes = String.Join("|", drpProessTypes.Values); + } + else + { + Alert.ShowInTop("请选择热处理类型!", MessageBoxIcon.Warning); + return; + } + } + } + BLL.HJGL_PW_JointInfoService.UpdateJointInfo(newJointInfo); + } + else + { + newJointInfo.JOT_JointDesc = this.txtJointDesc.Text.Trim(); + newJointInfo.STE_ID = this.ddlSTE1.SelectedValue; + if (this.ddlSTE2.SelectedValue != BLL.Const._Null) + { + newJointInfo.STE_ID2 = this.ddlSTE2.SelectedValue; + } + newJointInfo.JOTY_ID = this.ddlJOTY_ID.SelectedValue; + newJointInfo.JST_ID = this.ddlJST_ID.SelectedValue; + newJointInfo.JOT_JointAttribute = this.ddlJointAttribute.SelectedValue; + newJointInfo.WME_ID = this.ddlWME_ID.SelectedValue; + newJointInfo.JOT_Size = Funs.GetNewDecimal(this.txtSize.Text); + newJointInfo.JOT_Dia = Funs.GetNewDecimal(this.txtDial.Text); + newJointInfo.JOT_Sch = this.txtSch.Text.Trim(); + if (this.ddlWLO_CODE.SelectedValue != BLL.Const._Null) + { + newJointInfo.WLO_Code = this.ddlWLO_CODE.SelectedValue; + } + if (this.ddlComponent1.SelectedValue != BLL.Const._Null) + { + newJointInfo.JOT_Component1 = this.ddlComponent1.SelectedValue; + } + if (this.ddlComponent2.SelectedValue != BLL.Const._Null) + { + newJointInfo.JOT_Component2 = this.ddlComponent2.SelectedValue; + } + newJointInfo.JOT_LastTemp = Funs.GetNewDecimal(this.txtLastTemp.Text); + newJointInfo.JOT_CellTemp = Funs.GetNewDecimal(this.txtCellTemp.Text); + newJointInfo.JOT_PrepareTemp = Funs.GetNewDecimal(this.txtPrepareTemp.Text); + if (this.ddlWeldSilk.SelectedValue != BLL.Const._Null) + { + newJointInfo.JOT_WeldSilk = this.ddlWeldSilk.SelectedValue; + } + if (this.ddlWeldMat.SelectedValue != BLL.Const._Null) + { + newJointInfo.JOT_WeldMat = this.ddlWeldMat.SelectedValue; + } + newJointInfo.JOT_Electricity = this.txtElectricity.Text.Trim(); + newJointInfo.JOT_Voltage = this.txtVoltage.Text.Trim(); + if (this.drpIS_Proess.SelectedValue != BLL.Const._Null) + { + newJointInfo.IS_Proess = this.drpIS_Proess.SelectedValue; + if (this.drpIS_Proess.SelectedValue == "1") + { + if (drpProessTypes.Values.Length > 0) + { + newJointInfo.ProessTypes = String.Join("|", drpProessTypes.Values); + } + else + { + Alert.ShowInTop("请选择热处理类型!", MessageBoxIcon.Warning); + return; + } + } + } + newJointInfo.JOT_Remark = this.txtRemark.Text; + newJointInfo.PressureTestPackageNo = this.txtPressureTestPackageNo.Text; + newJointInfo.InstallationId = this.drpInstallationId.SelectedValue; + newJointInfo.NDTR_ID = this.drpNDTR_ID.SelectedValue; + newJointInfo.JOT_QualifiedLevel = this.drpJOT_QualifiedLevel.SelectedValue; + if (this.drpIsSpecial.SelectedValue == "1") + { + newJointInfo.IsSpecial = true; + } + else + { + newJointInfo.IsSpecial = false; + } + if (this.drpIsGold.SelectedValue == "1") + { + newJointInfo.IsGold = true; + } + else + { + newJointInfo.IsGold = false; + } + if (!string.IsNullOrEmpty(this.txtWeldL.Text)) + { + newJointInfo.WeldL = Convert.ToInt32(this.txtWeldL.Text); + } + newJointInfo.JOT_JointStatus = "100"; + newJointInfo.JOT_TrustFlag = "00"; + newJointInfo.JOT_CheckFlag = "00"; + if (newJointInfo.DReportID != null) + { + BLL.HJGL_PW_JointInfoService.UpdateJointNoAddG(jotId, this.ddlJointAttribute.SelectedValue, Const.BtnModify); + } + var joty = BLL.HJGL_WeldService.GetJointTypeByID(newJointInfo.JOTY_ID); + if (joty != null) + { + var jot = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(jotId); + if (jot != null) + { + if (!string.IsNullOrEmpty(jot.JOT_JointNo)) + { + if (joty.JOTY_Group == "2")//角焊缝(承插) + { + if (char.IsDigit(jot.JOT_JointNo[0])) + { + newJointInfo.JOT_JointNo = "C" + jot.JOT_JointNo; + } + else + { + newJointInfo.JOT_JointNo = "C" + jot.JOT_JointNo.Substring(1); + } + } + else if (joty.JOTY_Group == "3")//支管连接焊缝 + { + if (char.IsDigit(jot.JOT_JointNo[0])) + { + newJointInfo.JOT_JointNo = "D" + jot.JOT_JointNo; + } + else + { + newJointInfo.JOT_JointNo = "D" + jot.JOT_JointNo.Substring(1); + } + } + } + } + } + BLL.HJGL_PW_JointInfoService.UpdateJointInfo(newJointInfo); + + //// 更新排序字段 + string strSort = @"UPDATE dbo.HJGL_PW_JointInfo SET + Sort1=(case when PATINDEX('[A-Z]%',JOT_JointNo)>0 THEN 'B' + WHEN ISNUMERIC(JOT_JointNo)=1 then 'C' ELSE 'C' END), + Sort2=(CASE WHEN ISNUMERIC(JOT_JointNo)=1 then try_cast(REPLACE(JOT_JointNo,'.','') AS INT) + WHEN ISNUMERIC(SUBSTRING(JOT_JointNo,0,CHARINDEX('Z',JOT_JointNo)))=1 + THEN TRY_CAST(SUBSTRING(JOT_JointNo,0,CHARINDEX('Z',JOT_JointNo)) as int) + WHEN PATINDEX('[0-9]%',JOT_JointNo)>0 then + TRY_CAST(left(JOT_JointNo,PATINDEX('%[^0-9]%',JOT_JointNo)-1) as int) + ELSE 0 END), + Sort3= SUBSTRING(JOT_JointNo,1,1), + Sort4=(CASE WHEN CHARINDEX('Z',JOT_JointNo)>0 and SUBSTRING(JOT_JointNo,1,1)<>'Z' + THEN ISNULL(TRY_CAST(SUBSTRING(replace(JOT_JointNo,'#',''),2,CHARINDEX('Z',JOT_JointNo)-2) as int),0) + WHEN PATINDEX('%[A-G]%',SUBSTRING(replace(JOT_JointNo,'#',''),2,len(JOT_JointNo)))>0 + THEN ISNULL(TRY_CAST(SUBSTRING(JOT_JointNo,2,len(JOT_JointNo)-2) as int),0) + ELSE ISNULL(TRY_CAST(SUBSTRING(replace(JOT_JointNo,'#',''),2,len(JOT_JointNo)) as int),0) END), + Sort5=(CASE WHEN CHARINDEX('Z',JOT_JointNo)>0 + THEN ISNULL(TRY_CAST(SUBSTRING(JOT_JointNo,charindex('Z',JOT_JointNo)+1,len(JOT_JointNo)) AS INT),0) + WHEN PATINDEX('%[A-Y]',SUBSTRING(replace(JOT_JointNo,'#',''),2,len(JOT_JointNo)))>0 + THEN ISNULL(TRY_CAST(SUBSTRING(JOT_JointNo,2,len(JOT_JointNo)-1) as int),0) ELSE 0 END) + WHERE JOT_ID='" + jotId+ "'"; + SQLHelper.ExecutSql(strSort); + } + } + } + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + ShowNotify("提交成功!", MessageBoxIcon.Success); + } + else + { + Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); + return; + } + } + #endregion + + #region 格式化字符串 + /// + /// 材质1下拉选择事件 + /// + /// + /// + protected void ddlSTE1_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.ddlSTE1.SelectedValue != BLL.Const._Null) + { + var ste = BLL.HJGL_MaterialService.GetSteelBySteID(this.ddlSTE1.SelectedValue); + if (ste != null) + { + this.txtHardQuaStandard.Text = ste.HardQuaStandard; + } + else + { + this.txtHardQuaStandard.Text = string.Empty; + } + this.ddlSTE2.SelectedValue = ddlSTE1.SelectedValue; + } + else + { + this.txtHardQuaStandard.Text = string.Empty; + } + } + + /// + /// 焊缝类型下拉选择事件 + /// + /// + /// + protected void ddlJOTY_ID_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.ddlJOTY_ID.SelectedValue != BLL.Const._Null) + { + var joty = BLL.HJGL_WeldService.GetJointTypeByID(this.ddlJOTY_ID.SelectedValue); + if (joty != null) + { + var isoInfo = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(this.ISO_ID); + if (isoInfo != null) + { + if (joty.JOTY_Group == "1")//对接 + { + if (!string.IsNullOrEmpty(isoInfo.Joty_B_Rate)) + { + this.drpNDTR_ID.SelectedValue = isoInfo.Joty_B_Rate; + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + } + if (!string.IsNullOrEmpty(isoInfo.Joty_B_Level)) + { + this.drpJOT_QualifiedLevel.SelectedValue = isoInfo.Joty_B_Level; + } + else + { + this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; + } + } + else if (joty.JOTY_Group == "2")//角焊缝(承插) + { + if (!string.IsNullOrEmpty(isoInfo.Joty_C_Rate)) + { + this.drpNDTR_ID.SelectedValue = isoInfo.Joty_C_Rate; + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + } + if (!string.IsNullOrEmpty(isoInfo.Joty_C_Level)) + { + this.drpJOT_QualifiedLevel.SelectedValue = isoInfo.Joty_C_Level; + } + else + { + this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; + } + //焊口号前自动加C + //string jointNo = this.txtJointNo.Text.Trim(); + //if (!string.IsNullOrEmpty(jointNo)) + //{ + // if (char.IsDigit(jointNo[0])) + // { + // this.txtJointNo.Text = "C" + jointNo; + // } + // else + // { + // this.txtJointNo.Text = "C" + jointNo.Substring(1); + // } + //} + //else + //{ + // this.txtJointNo.Text = "C"; + //} + } + else if (joty.JOTY_Group == "3")//支管连接焊缝 + { + if (!string.IsNullOrEmpty(isoInfo.Joty_D_Rate)) + { + this.drpNDTR_ID.SelectedValue = isoInfo.Joty_D_Rate; + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + } + if (!string.IsNullOrEmpty(isoInfo.Joty_D_Level)) + { + this.drpJOT_QualifiedLevel.SelectedValue = isoInfo.Joty_D_Level; + } + else + { + this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; + } + ////焊口号前自动加D + //string jointNo = this.txtJointNo.Text.Trim(); + //if (!string.IsNullOrEmpty(jointNo)) + //{ + // if (char.IsDigit(jointNo[0])) + // { + // this.txtJointNo.Text = "D" + jointNo; + // } + // else + // { + // this.txtJointNo.Text = "D" + jointNo.Substring(1); + // } + //} + //else + //{ + // this.txtJointNo.Text = "D"; + //} + } + } + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; + } + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + this.drpJOT_QualifiedLevel.SelectedValue = BLL.Const._Null; + } + } + + /// + /// 焊工属性下拉选择事件 + /// + /// + /// + protected void ddlJointAttribute_SelectedIndexChanged(object sender, EventArgs e) + { + //if (this.ddlJointAttribute.SelectedValue == "固定") + //{ + //if (this.txtJointNo.Text.Trim().Last() != 'G') + //{ + // this.txtJointNo.Text = this.txtJointNo.Text.Trim() + "G"; + //} + //} + //else + //{ + //if (this.txtJointNo.Text.Trim().Last() == 'G') + //{ + // this.txtJointNo.Text = this.txtJointNo.Text.Trim().Replace("G", ""); + //} + //} + } + + /// + /// 根据寸经外径对照表,输入外径是自动得到寸径;焊口规格:Φ外径*壁厚 + /// + /// + /// + protected void txtText_TextChanged(object sender, EventArgs e) + { + //根据寸经外径对照表,输入外径是自动得到寸径 + if (!string.IsNullOrEmpty(this.txtDial.Text.Trim())) + { + decimal dia = Funs.GetNewDecimalOrZero(this.txtDial.Text.Trim()); + if (dia >= 500) + { + this.drpIsSpecial.SelectedValue = "1"; + } + var inch = HJGL_ControlService.GetSizeByDia(dia); + if (inch != null) + { + this.txtSize.Text = Convert.ToString(inch); + } + } + + //焊口规格:Φ外径*壁厚 + if (!string.IsNullOrEmpty(this.txtDial.Text.Trim()) && !string.IsNullOrEmpty(this.txtSch.Text.Trim())) + { + this.txtJointDesc.Text = "Φ" + this.txtDial.Text.Trim() + "×" + this.txtSch.Text.Trim(); + } + } + + /// + /// 是否显示热处理类型 + /// + /// + /// + protected void drpIS_Proess_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.drpIS_Proess.SelectedValue == "1") + { + this.drpProessTypes.Hidden = false; + } + else + { + this.drpProessTypes.Hidden = true; + } + } + + /// + /// 热处理类型选择变化事件 + /// + /// + /// + protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) + { + string jotIdStr = Request.Params["jotIdList"]; + var jotIdList = jotIdStr.Split(','); + //已委托的热处理类型 + var isTrustProessTypes = from x in BLL.Funs.DB.HJGL_CH_HotProessTrustItem where x.JOT_ID == jotIdList[0] select x.ProessTypes; + if (drpProessTypes.Values.Length > 0) + { + List strs = this.RadioButtonList1.SelectedValueArray.ToList(); + foreach (var isTrustProessType in isTrustProessTypes) //已委托的热处理类型不能去除 + { + if (!strs.Contains(isTrustProessType)) + { + strs.Add(isTrustProessType); + } + } + this.RadioButtonList1.SelectedValueArray = strs.ToArray(); + this.drpProessTypes.Values = strs.ToArray(); + string proessTypes = String.Join("|", drpProessTypes.Values); + this.drpProessTypes.Text = BLL.HJGL_PW_JointInfoService.ConvertProessTypes(proessTypes); + } + else + { + Alert.ShowInTop("请选择热处理类型!", MessageBoxIcon.Warning); + return; + } + } + + protected void drpIsGold_SelectedIndexChanged(object sender, EventArgs e) + { + //var jotIdList = jotIdStr.Split(','); + //foreach (var item in jotIdList) + //{ + if (this.drpIsGold.SelectedValue == "1") + { + this.drpNDTR_ID.SelectedValue = "e2612188-fc99-492a-937c-74c7a0151656"; //黄金口检测比例100% + this.drpNDTR_ID.Enabled = false; + //this.txtJointNoPrix.Text =BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(item).JOT_JointNo + "H"; + } + else + { + this.drpNDTR_ID.SelectedValue = BLL.Const._Null; + this.drpNDTR_ID.Enabled = true; + //string jotNo= BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(item).JOT_JointNo; + //this.txtJointNo.Text = this.txtJointNo.Text.Trim().Substring(0, this.txtJointNo.Text.Trim().Length - 1); + } + //} + } + + /// + /// 外径输入事件 + /// + /// + /// + protected void txtDial_TextChanged(object sender, EventArgs e) + { + //根据寸经外径对照表,输入外径是自动得到寸径 + if (!string.IsNullOrEmpty(this.txtDial.Text.Trim())) + { + decimal dia = Funs.GetNewDecimalOrZero(this.txtDial.Text.Trim()); + if (dia >= 500) + { + this.drpIsSpecial.SelectedValue = "1"; + } + var inch = HJGL_ControlService.GetSizeByDia(dia); + if (inch != null) + { + this.txtSize.Text = Convert.ToString(inch); + } + } + + //焊口规格:Φ外径*壁厚 + if (!string.IsNullOrEmpty(this.txtDial.Text.Trim()) && !string.IsNullOrEmpty(this.txtSch.Text.Trim())) + { + this.txtJointDesc.Text = "Φ" + this.txtDial.Text.Trim() + "×" + this.txtSch.Text.Trim(); + } + } + + // 非常规焊缝 + protected void txtWeldL_TextChanged(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(this.txtWeldL.Text.Trim())) + { + this.txtJointDesc.Text = "L=" + this.txtWeldL.Text.Trim() + "×" + this.txtSch.Text.Trim(); + } + } + #endregion + } +} \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.designer.cs new file mode 100644 index 0000000..41166bb --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoBatchModity.aspx.designer.cs @@ -0,0 +1,395 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.HJGL.WeldingManage +{ + + + public partial class JointInfoBatchModity + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// txtJointNoS 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtJointNoS; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// drpInstallationId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpInstallationId; + + /// + /// ddlSTE1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlSTE1; + + /// + /// ddlSTE2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlSTE2; + + /// + /// ddlJOTY_ID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlJOTY_ID; + + /// + /// ddlJST_ID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlJST_ID; + + /// + /// ddlJointAttribute 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlJointAttribute; + + /// + /// ddlWME_ID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlWME_ID; + + /// + /// ddlWLO_CODE 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlWLO_CODE; + + /// + /// txtJointDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtJointDesc; + + /// + /// txtDial 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtDial; + + /// + /// txtSch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtSch; + + /// + /// txtSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtSize; + + /// + /// ddlComponent1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlComponent1; + + /// + /// ddlComponent2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlComponent2; + + /// + /// txtLastTemp 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtLastTemp; + + /// + /// txtCellTemp 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtCellTemp; + + /// + /// txtPrepareTemp 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtPrepareTemp; + + /// + /// ddlWeldSilk 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlWeldSilk; + + /// + /// ddlWeldMat 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlWeldMat; + + /// + /// txtElectricity 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtElectricity; + + /// + /// txtVoltage 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtVoltage; + + /// + /// txtPressureTestPackageNo 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPressureTestPackageNo; + + /// + /// drpIS_Proess 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpIS_Proess; + + /// + /// drpProessTypes 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownBox drpProessTypes; + + /// + /// SimpleForm3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.SimpleForm SimpleForm3; + + /// + /// Label10 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label Label10; + + /// + /// RadioButtonList1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.CheckBoxList RadioButtonList1; + + /// + /// drpNDTR_ID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpNDTR_ID; + + /// + /// drpJOT_QualifiedLevel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpJOT_QualifiedLevel; + + /// + /// drpIsGold 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpIsGold; + + /// + /// drpIsSpecial 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpIsSpecial; + + /// + /// txtHardQuaStandard 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtHardQuaStandard; + + /// + /// txtWeldL 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtWeldL; + + /// + /// lbDef 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lbDef; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRemark; + } +} diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx index b97f68f..15fc47a 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx @@ -22,6 +22,9 @@ + + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.cs index 9c1cfdd..075b38d 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.cs @@ -1,11 +1,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage { + using BLL; + using FastReport.DevComponents.DotNetBar; + using Model; + using NPOI.SS.UserModel; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; + using System.IO; + using System.Linq; using System.Text; - using BLL; using AspNet = System.Web.UI.WebControls; public partial class JointInfoOut : PageBase @@ -19,7 +24,7 @@ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) - { + { this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 this.BindGrid(); @@ -43,14 +48,14 @@ // strSql += " AND COM_Code LIKE @COM_Code"; // listStr.Add(new SqlParameter("@COM_Code", "%" + this.txtCode.Text.Trim() + "%")); //} - + SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 //var table = this.GetPagedDataTable(Grid1, tb1); Grid1.RecordCount = tb.Rows.Count; - tb = GetFilteredTable(Grid1.FilteredData, tb); + //tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; @@ -168,6 +173,259 @@ return sb.ToString(); } - #endregion + #endregion + + #region 按导入模板导出 + /// + /// 按导入模板导出 + /// + /// + /// + protected void btnOut2_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.JointInTemplateUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + + + string isoId = Request.QueryString["ISO_ID"] ?? string.Empty; + if (!string.IsNullOrEmpty(isoId)) + { + var lists = from x in Funs.DB.HJGL_View_JointInfo + where x.ISO_ID == isoId + select x; + + lists = lists.OrderBy(x => x.JOTY_Group).OrderBy(x => x.Sort1).OrderBy(x => x.Sort2).OrderBy(x => x.Sort3).OrderBy(x => x.Sort4).OrderBy(x => x.Sort5); + if (lists != null) + { + newUrl = uploadfilepath.Replace("焊口信息导入模板", "焊口信息"); + if (File.Exists(newUrl)) + { + File.Delete(newUrl); + } + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + //施工号 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + string proCode = string.Empty; + var pro = BLL.Base_ProjectService.GetProjectByProjectId(item.ProjectId); + if (pro != null) + { + proCode = pro.ProjectCode; + } + cell.SetCellValue(proCode); + //管线号 + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.ISO_IsoNo); + //焊口号 + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_JointNo); + //装置 + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InstallationName); + //材质一 + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.STE_Name1); + //材质二 + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.STE_Name2); + //焊缝类型 + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOTY_Name); + //坡口类型 + cell = row.CreateCell(7); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JST_Name); + //焊口属性 + cell = row.CreateCell(8); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_JointAttribute); + //焊接方法 + cell = row.CreateCell(9); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.WME_Name); + //外径 + cell = row.CreateCell(10); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_Dia.HasValue ? item.JOT_Dia.ToString() : ""); + //壁厚 + cell = row.CreateCell(11); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_Sch); + //寸径 + cell = row.CreateCell(12); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_Size.HasValue?item.JOT_Size.ToString():""); + //焊接区域 + cell = row.CreateCell(13); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.WLO_Code == "F" ? "安装" : "预制"); + //组件一 + cell = row.CreateCell(14); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Component1); + //组件二 + cell = row.CreateCell(15); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Component2); + //后热温度 + cell = row.CreateCell(16); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_LastTemp.HasValue ? item.JOT_LastTemp.ToString() : ""); + //层间温度 + cell = row.CreateCell(17); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_CellTemp.HasValue ? item.JOT_CellTemp.ToString() : ""); + //预热温度 + cell = row.CreateCell(18); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_PrepareTemp.HasValue ? item.JOT_PrepareTemp.ToString() : ""); + //焊丝 + cell = row.CreateCell(19); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.WeldSilk); + //焊条 + cell = row.CreateCell(20); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.WeldMat); + //焊接电流 + cell = row.CreateCell(21); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_Electricity); + //焊接电压 + cell = row.CreateCell(22); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_Voltage); + //是否热处理 + cell = row.CreateCell(23); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.IS_Proess == "1" ? "是" : "否"); + //热处理类型(是否热处理为‘是’时填写 分别为:预热, 消氢, 后热, 消应力热处理,稳定化处理 填写时请用英文逗号隔开) + cell = row.CreateCell(24); + cell.CellStyle = cellStyle; + string proessTypes = string.Empty; + if (!string.IsNullOrEmpty(item.ProessTypes)) + { + foreach (var t in item.ProessTypes.Split('|')) + { + if (t == "1") + { + proessTypes += "预热,"; + } + else if (t == "2") + { + proessTypes += "消氢,"; + } + else if (t == "3") + { + proessTypes += "后热,"; + } + else if (t == "4") + { + proessTypes += "消应力热处理,"; + } + else if (t == "5") + { + proessTypes += "稳定化处理,"; + } + } + if (!string.IsNullOrEmpty(proessTypes)) + { + proessTypes = proessTypes.Substring(0, proessTypes.LastIndexOf(",")); + } + } + cell.SetCellValue(proessTypes); + //是否特殊 + cell = row.CreateCell(25); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.IsSpecial == true ? "是" : "否"); + //探伤比例 + cell = row.CreateCell(26); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.NDTR_Name); + //合格等级 + cell = row.CreateCell(27); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_QualifiedLevel); + //硬度合格标准 + cell = row.CreateCell(28); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.HardQuaStandard); + //非常焊缝 + cell = row.CreateCell(29); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.WeldL.HasValue ? item.WeldL.ToString() : ""); + //黄金口(是 / 否) + cell = row.CreateCell(30); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.IsGold == true ? "是" : "否"); + //备注 + cell = row.CreateCell(31); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.JOT_Remark); + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + } + #endregion } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.designer.cs index c2731de..6ec5a8c 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfoOut.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HJGL.WeldingManage { - - - public partial class JointInfoOut { - +namespace FineUIPro.Web.HJGL.WeldingManage +{ + + + public partial class JointInfoOut + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// Toolbar3 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar3; - + /// /// ToolbarFill1 控件。 /// @@ -65,7 +67,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + + /// + /// btnOut2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut2; + /// /// btnOut 控件。 /// @@ -74,7 +85,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnOut; - + /// /// ToolbarSeparator1 控件。 /// @@ -83,7 +94,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -92,7 +103,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// diff --git a/HJGL_DS/FineUIPro.Web/Web.config b/HJGL_DS/FineUIPro.Web/Web.config index 3c98f31..557f12f 100644 --- a/HJGL_DS/FineUIPro.Web/Web.config +++ b/HJGL_DS/FineUIPro.Web/Web.config @@ -67,7 +67,7 @@ - + diff --git a/HJGL_DS/Model/Model.cs b/HJGL_DS/Model/Model.cs index 376f631..614c7b9 100644 --- a/HJGL_DS/Model/Model.cs +++ b/HJGL_DS/Model/Model.cs @@ -66384,6 +66384,18 @@ namespace Model private string _JOTY_Group; + private string _JOT_Electricity; + + private string _JOT_Voltage; + + private System.Nullable _WeldL; + + private System.Nullable _IsGold; + + private string _JOT_QualifiedLevel; + + private string _HardQuaStandard; + public HJGL_View_JointInfo() { } @@ -67731,6 +67743,102 @@ namespace Model } } } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JOT_Electricity", DbType="VarChar(40)")] + public string JOT_Electricity + { + get + { + return this._JOT_Electricity; + } + set + { + if ((this._JOT_Electricity != value)) + { + this._JOT_Electricity = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JOT_Voltage", DbType="VarChar(40)")] + public string JOT_Voltage + { + get + { + return this._JOT_Voltage; + } + set + { + if ((this._JOT_Voltage != value)) + { + this._JOT_Voltage = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WeldL", DbType="Int")] + public System.Nullable WeldL + { + get + { + return this._WeldL; + } + set + { + if ((this._WeldL != value)) + { + this._WeldL = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsGold", DbType="Bit")] + public System.Nullable IsGold + { + get + { + return this._IsGold; + } + set + { + if ((this._IsGold != value)) + { + this._IsGold = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JOT_QualifiedLevel", DbType="NVarChar(10)")] + public string JOT_QualifiedLevel + { + get + { + return this._JOT_QualifiedLevel; + } + set + { + if ((this._JOT_QualifiedLevel != value)) + { + this._JOT_QualifiedLevel = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HardQuaStandard", DbType="NVarChar(50)")] + public string HardQuaStandard + { + get + { + return this._HardQuaStandard; + } + set + { + if ((this._HardQuaStandard != value)) + { + this._HardQuaStandard = value; + } + } + } } [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.HJGL_View_JointInfoAndIsoInfo")] diff --git a/HJGL_DS/WebAPI/WebAPI.csproj.user b/HJGL_DS/WebAPI/WebAPI.csproj.user index 8cd7f1f..ef14066 100644 --- a/HJGL_DS/WebAPI/WebAPI.csproj.user +++ b/HJGL_DS/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@ - Release|Any CPU + Debug|Any CPU FolderProfile true From a0a7e026a3738126e22c4954a1d260a8f3a21092 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Thu, 23 Jul 2026 16:15:07 +0800 Subject: [PATCH 3/9] 20260723 --- HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user | 4 ++-- HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs | 2 +- HJGL_DS/FineUIPro.Web/Web.config | 4 ++-- HJGL_DS/WebAPI/WebAPI.csproj.user | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user index abef49a..e3436b8 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,8 +1,8 @@ - + true - Debug|Any CPU + Release|Any CPU diff --git a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs index 09b8c82..e558b26 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/DataIn/JointIn.aspx.cs @@ -610,7 +610,7 @@ namespace FineUIPro.Web.HJGL.DataIn if (getProject != null && getPWisInfo != null) { var getJoint = Funs.DB.HJGL_PW_JointInfo.FirstOrDefault(x => x.ProjectId == getProject.ProjectId && x.ISO_ID == getPWisInfo.ISO_ID && x.JOT_JointNo == col2); - if (getJoint != null) + if (getJoint != null && this.cbUpdateIn.Checked == false) { result += "第" + (i + 2).ToString() + "行," + "该焊口已存在" + "\n"; } diff --git a/HJGL_DS/FineUIPro.Web/Web.config b/HJGL_DS/FineUIPro.Web/Web.config index 1b40665..3c98f31 100644 --- a/HJGL_DS/FineUIPro.Web/Web.config +++ b/HJGL_DS/FineUIPro.Web/Web.config @@ -11,7 +11,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/HJGL_DS/WebAPI/WebAPI.csproj.user b/HJGL_DS/WebAPI/WebAPI.csproj.user index a48b337..8cd7f1f 100644 --- a/HJGL_DS/WebAPI/WebAPI.csproj.user +++ b/HJGL_DS/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@ - + - Debug|Any CPU + Release|Any CPU FolderProfile true From e490ea9c890d16c24e14a42c5350de3e07737127 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 28 Jul 2026 14:35:50 +0800 Subject: [PATCH 4/9] =?UTF-8?q?20260728=20=20=E4=BF=AE=E6=94=B9=E7=84=8A?= =?UTF-8?q?=E5=B7=A5=E7=84=8A=E6=8E=A5=E6=A3=80=E6=B5=8B=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E8=A1=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/HJGLDB_DS_2026-07-28_bwj.sql | 113 ++++++++++ .../WeldingReport/WelderCheckStatistic.aspx | 198 +++++++++--------- .../WelderCheckStatistic.aspx.cs | 11 +- .../WelderCheckStatistic.aspx.designer.cs | 55 +++-- 4 files changed, 255 insertions(+), 122 deletions(-) create mode 100644 DataBase/版本日志/HJGLDB_DS_2026-07-28_bwj.sql diff --git a/DataBase/版本日志/HJGLDB_DS_2026-07-28_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-07-28_bwj.sql new file mode 100644 index 0000000..20cc6a7 --- /dev/null +++ b/DataBase/版本日志/HJGLDB_DS_2026-07-28_bwj.sql @@ -0,0 +1,113 @@ + +ALTER PROC [dbo].[HJGL_sp_rpt_welderStatistics] + @unitcode varchar(50) = NULL, + @WED_ID nvarchar(50) = NULL, + @projectId NVARCHAR(50) = NULL +AS +/*ӼͳƱ*/ +SELECT welder.ProjectWelderId, + welder.ProjectId, + project.ProjectCode,--ʩ + wld.wed_code,-- + wld.wed_name,-- + + ISNULL(totalJoint.totalJoint,0) AS totalJoint, --Ѻ + ISNULL(TrustJointNum.TrustJointNum,0) AS TrustJointNum, --ίк + CAST((CASE ISNULL(TrustJointNum.TrustJointNum,0) WHEN 0 THEN 0 + ELSE 1.0 * ISNULL(TrustJointNum.TrustJointNum,0)/(1.0 * totalJoint.totalJoint) END) AS DECIMAL(19,3)) + AS OneCheckRate , ---һμ + + ISNULL(FixedJoint.FixedJoint,0) AS FixedJoint, --Ѻ̶ + ISNULL(TrustFixedJoint.TrustFixedJoint,0) AS TrustFixedJoint, --ίй̶ + CAST((CASE ISNULL(TrustFixedJoint.TrustFixedJoint,0) WHEN 0 THEN 0 + ELSE 1.0 * ISNULL(TrustFixedJoint.TrustFixedJoint,0)/(1.0 * FixedJoint.FixedJoint) END) AS DECIMAL(19,3)) + AS FixedJointCheckRate , ---̶ڼ + + ISNULL(ButtJoint.ButtJoint,0) AS ButtJoint, --ѺԽӺ + ISNULL(TrustButtJoint.TrustButtJoint,0) AS TrustButtJoint, --ίжԽӺ + CAST((CASE ISNULL(TrustButtJoint.TrustButtJoint,0) WHEN 0 THEN 0 + ELSE 1.0 * ISNULL(TrustButtJoint.TrustButtJoint,0)/(1.0 * ButtJoint.ButtJoint) END) AS DECIMAL(19,3)) + AS ButtJointCheckRate , ---ԽӺ + + ISNULL(FilletJoint.FilletJoint,0) AS FilletJoint, --ѺǺ + ISNULL(TrustFilletJoint.TrustFilletJoint,0) AS TrustFilletJoint, --ίнǺ + CAST((CASE ISNULL(TrustFilletJoint.TrustFilletJoint,0) WHEN 0 THEN 0 + ELSE 1.0 * ISNULL(TrustFilletJoint.TrustFilletJoint,0)/(1.0 * FilletJoint.FilletJoint) END) AS DECIMAL(19,3)) + AS FilletJointCheckRate + +FROM dbo.Project_Welder AS welder +LEFT JOIN Base_Project project on welder.ProjectId=project.ProjectId +LEFT JOIN dbo.HJGL_BS_Welder wld on wld.WED_ID=welder.WED_ID + --Ѻ +LEFT JOIN (SELECT COUNT(*) AS totalJoint,HJGL_pw_jointinfo.JOT_CellWelder,ProjectId + FROM HJGL_PW_JointInfo + WHERE HJGL_pw_jointinfo.DReportID is not null + GROUP BY HJGL_pw_jointinfo.JOT_CellWelder,ProjectId) AS totalJoint ON totalJoint.JOT_CellWelder = welder.WED_ID and totalJoint.ProjectId=welder.ProjectId + + --Ѻ̶ +LEFT JOIN (SELECT COUNT(*) AS FixedJoint,JOT_CellWelder,ProjectId + FROM HJGL_PW_JointInfo + WHERE DReportID is not null AND JOT_JointAttribute='̶' + GROUP BY HJGL_pw_jointinfo.JOT_CellWelder,ProjectId) AS FixedJoint ON FixedJoint.JOT_CellWelder = welder.WED_ID and FixedJoint.ProjectId=welder.ProjectId + + + --ѺԽӺ +LEFT JOIN (SELECT COUNT(*) AS ButtJoint,joint.JOT_CellWelder,ProjectId + FROM HJGL_PW_JointInfo joint + LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID + WHERE DReportID is not null AND jointType.JOTY_Group='1' + GROUP BY joint.JOT_CellWelder,ProjectId) AS ButtJoint ON ButtJoint.JOT_CellWelder = welder.WED_ID and ButtJoint.ProjectId=welder.ProjectId + + + --ѺǺ +LEFT JOIN (SELECT COUNT(*) AS FilletJoint,joint.JOT_CellWelder,ProjectId + FROM HJGL_PW_JointInfo joint + LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID + WHERE DReportID is not null AND jointType.JOTY_Group='2' + GROUP BY joint.JOT_CellWelder,ProjectId) AS FilletJoint ON FilletJoint.JOT_CellWelder = welder.WED_ID and FilletJoint.ProjectId=welder.ProjectId + + +--ίк + LEFT JOIN (SELECT COUNT(*) AS TrustJointNum,joint.JOT_CellWelder,ProjectId + FROM dbo.HJGL_BO_BatchDetail batchDetail + LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id + WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' + GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustJointNum ON TrustJointNum.JOT_CellWelder = welder.WED_ID and TrustJointNum.ProjectId=welder.ProjectId + + +--ίй̶ + LEFT JOIN (SELECT COUNT(*) AS TrustFixedJoint,joint.JOT_CellWelder,ProjectId + FROM dbo.HJGL_BO_BatchDetail batchDetail + LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id + WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') + AND joint.JOT_JointAttribute='̶' and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' + GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustFixedJoint ON TrustFixedJoint.JOT_CellWelder = welder.WED_ID and TrustFixedJoint.ProjectId=welder.ProjectId + + +--ίжԽӺ + LEFT JOIN (SELECT COUNT(*) AS TrustButtJoint,joint.JOT_CellWelder,ProjectId + FROM dbo.HJGL_BO_BatchDetail batchDetail + LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id + LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID + WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') + AND jointType.JOTY_Group='1' and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' + GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustButtJoint ON TrustButtJoint.JOT_CellWelder = welder.WED_ID and TrustButtJoint.ProjectId=welder.ProjectId + +--ίнǺ + LEFT JOIN (SELECT COUNT(*) AS TrustFilletJoint,joint.JOT_CellWelder,ProjectId + FROM dbo.HJGL_BO_BatchDetail batchDetail + LEFT JOIN HJGL_pw_jointinfo joint ON joint.jot_id=batchDetail.jot_id + LEFT JOIN dbo.HJGL_BS_JointType jointType on jointType.JOTY_ID=joint.JOTY_ID + WHERE (batchDetail.NDT is not null OR batchDetail.NDT!='') + AND jointType.JOTY_Group='2' and joint.JOT_JointNo not like '%A%' and joint.JOT_JointNo not like '%B%' and batchDetail.PointType!='2' + GROUP BY joint.JOT_CellWelder,ProjectId) AS TrustFilletJoint ON TrustFilletJoint.JOT_CellWelder = welder.WED_ID and TrustFilletJoint.ProjectId=welder.ProjectId + + +WHERE (welder.ProjectId = @projectId OR @projectId IS NULL) +AND (wld.WED_Unit=@unitcode OR @unitcode IS NULL) +AND (wld.WED_ID=@WED_ID OR @WED_ID is null) +order BY wld.WED_Code + + +GO + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx index 49340de..95c5a7b 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx @@ -4,107 +4,109 @@ - 焊工焊接检测统计表 + 焊工焊接检测统计表
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.cs index 3f55b62..b9139b8 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.cs @@ -86,7 +86,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunProc("HJGL_sp_rpt_welderStatistics", parameter); this.Grid1.RecordCount = tb.Rows.Count; - tb = GetFilteredTable(Grid1.FilteredData, tb); + //tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); @@ -151,6 +151,8 @@ namespace FineUIPro.Web.HJGL.WeldingReport Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("焊工焊接检测统计表" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; + this.Grid1.PageSize = 100000; + this.BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } @@ -181,7 +183,12 @@ namespace FineUIPro.Web.HJGL.WeldingReport { html = (row.FindControl("labNumber") as AspNet.Label).Text; } - sb.AppendFormat("{0}", html); + if (column.ColumnID == "tfWelderCode") + { + html = (row.FindControl("lblWelderCode") as AspNet.Label).Text; + } + //sb.AppendFormat("{0}", html); + sb.AppendFormat("{0}", html); } sb.Append(""); diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.designer.cs index 20c059a..28ed700 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingReport/WelderCheckStatistic.aspx.designer.cs @@ -2,16 +2,18 @@ // <自动生成> // 此代码由工具生成。 // -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HJGL.WeldingReport { - - - public partial class WelderCheckStatistic { - +namespace FineUIPro.Web.HJGL.WeldingReport +{ + + + public partial class WelderCheckStatistic + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// RegionPanel1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.RegionPanel RegionPanel1; - + /// /// Region1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Region Region1; - + /// /// Form2 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Form Form2; - + /// /// drpProject 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpProject; - + /// /// drpUnit 控件。 /// @@ -74,7 +76,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpUnit; - + /// /// drpWloName 控件。 /// @@ -83,7 +85,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpWloName; - + /// /// BtnAnalyse 控件。 /// @@ -92,7 +94,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button BtnAnalyse; - + /// /// btnOut 控件。 /// @@ -101,7 +103,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnOut; - + /// /// Region2 控件。 /// @@ -110,7 +112,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Region Region2; - + /// /// Grid1 控件。 /// @@ -119,7 +121,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// labNumber 控件。 /// @@ -128,7 +130,16 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label labNumber; - + + /// + /// lblWelderCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblWelderCode; + /// /// ToolbarSeparator1 控件。 /// @@ -137,7 +148,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -146,7 +157,7 @@ namespace FineUIPro.Web.HJGL.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// From a39451c59afd4d2425b63cda689e7d8594629b79 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Fri, 31 Jul 2026 16:14:56 +0800 Subject: [PATCH 5/9] 1 --- .../FineUIPro.Web/File/Fastreport/JGZL/管道焊接工作记录.frx | 6 +++--- HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- HJGL_DS/FineUIPro.Web/Web.config | 2 +- HJGL_DS/WebAPI/WebAPI.csproj.user | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/管道焊接工作记录.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/管道焊接工作记录.frx index 63822ea..260d33d 100644 --- a/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/管道焊接工作记录.frx +++ b/HJGL_DS/FineUIPro.Web/File/Fastreport/JGZL/管道焊接工作记录.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -50,7 +50,7 @@ namespace FastReport } - + @@ -84,7 +84,7 @@ namespace FastReport - + diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user index abef49a..80f7761 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -2,7 +2,7 @@ true - Debug|Any CPU + Release|Any CPU diff --git a/HJGL_DS/FineUIPro.Web/Web.config b/HJGL_DS/FineUIPro.Web/Web.config index 1b40665..070a5f8 100644 --- a/HJGL_DS/FineUIPro.Web/Web.config +++ b/HJGL_DS/FineUIPro.Web/Web.config @@ -67,7 +67,7 @@ - + diff --git a/HJGL_DS/WebAPI/WebAPI.csproj.user b/HJGL_DS/WebAPI/WebAPI.csproj.user index a48b337..28be9c4 100644 --- a/HJGL_DS/WebAPI/WebAPI.csproj.user +++ b/HJGL_DS/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU FolderProfile true From 3ecda170dc271baacab0e1dec065f76aced398d1 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Fri, 7 Aug 2026 10:44:44 +0800 Subject: [PATCH 6/9] 1 --- HJGL_DS/BLL/API/APIBaseServices.cs | 64 ++++++++ HJGL_DS/BLL/API/APIWeldServices.cs | 141 +++++++++++++++++- .../WeldingManage/HJGL_PW_JointInfoService.cs | 140 +++++++++++++++++ HJGL_DS/Model/APIItem/WeldMethodItem.cs | 24 +++ HJGL_DS/Model/HJGL/HJGL_SpRpWeldReportItem.cs | 8 + HJGL_DS/Model/Model.csproj | 1 + HJGL_DS/WebAPI/Controllers/BaseController.cs | 51 +++++++ .../WebAPI/Controllers/JointInfoController.cs | 26 ++++ HJGL_DS/WebAPI/Controllers/WeldController.cs | 91 +++++++++++ 9 files changed, 545 insertions(+), 1 deletion(-) create mode 100644 HJGL_DS/Model/APIItem/WeldMethodItem.cs diff --git a/HJGL_DS/BLL/API/APIBaseServices.cs b/HJGL_DS/BLL/API/APIBaseServices.cs index 0e2214f..10cbb17 100644 --- a/HJGL_DS/BLL/API/APIBaseServices.cs +++ b/HJGL_DS/BLL/API/APIBaseServices.cs @@ -222,6 +222,70 @@ namespace BLL.API return respone; } + public static Model.ResponeData weldMethodList() + { + Model.ResponeData respone = new ResponeData(); + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var q = BLL.HJGL_WeldingMethodService.GetWeldMethodNameList(); + List res = new List(); + foreach (var p in q) + { + WeldMethodItem item = new WeldMethodItem(); + item.WME_ID = p.WME_ID; + item.WME_Name = p.WME_Name; + res.Add(item); + } + + respone.data = res; + } + return respone; + } + + public static Model.ResponeData weldSilkList() + { + Model.ResponeData respone = new ResponeData(); + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var q = from x in db.View_WeldInfoDropDownLists + where x.WeldTypeName.Contains("焊丝") + select x; + List res = new List(); + foreach (var p in q) + { + WeldInfoItem item = new WeldInfoItem(); + item.WeldId = p.WeldId; + item.WeldName = p.WeldName; + res.Add(item); + } + + respone.data = res; + } + return respone; + } + + public static Model.ResponeData weldMatList() + { + Model.ResponeData respone = new ResponeData(); + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var q = from x in db.View_WeldInfoDropDownLists + where x.WeldTypeName.Contains("焊条") + select x; + List res = new List(); + foreach (var p in q) + { + WeldInfoItem item = new WeldInfoItem(); + item.WeldId = p.WeldId; + item.WeldName = p.WeldName; + res.Add(item); + } + + respone.data = res; + } + return respone; + } + public static Model.ResponeData getWeldInfo(string weldId) { Model.ResponeData respone = new ResponeData(); diff --git a/HJGL_DS/BLL/API/APIWeldServices.cs b/HJGL_DS/BLL/API/APIWeldServices.cs index bd2f877..b45f1de 100644 --- a/HJGL_DS/BLL/API/APIWeldServices.cs +++ b/HJGL_DS/BLL/API/APIWeldServices.cs @@ -312,6 +312,104 @@ namespace BLL.API return respone; } + public static Model.ResponeData getUsingPlanTempByUserId(string userId) + { + Model.ResponeData respone = new ResponeData(); + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + Weld_UsingPlan_Temp usingPlan = (from x in db.Weld_UsingPlan_Temp where x.InPutMan == userId select x).FirstOrDefault(); + + UsingPlanItem planItem = new UsingPlanItem(); + planItem.UsingPlanId = usingPlan.UsingPlanTempId; + planItem.WeldId = usingPlan.WeldId; + planItem.ProjectId = usingPlan.ProjectId; + planItem.UsePosition = usingPlan.UsePosition; + planItem.Amount = usingPlan.Amount; + planItem.UsingManOne = usingPlan.UsingManOne; + planItem.UsingManTwo = usingPlan.UsingManTwo; + if (usingPlan.InPutDate != null) + { + planItem.InPutDate = string.Format("{0:yyyy-MM-dd}", usingPlan.InPutDate); + } + if (usingPlan.CancelDate != null) + { + planItem.CancelDate = string.Format("{0:yyyy-MM-dd}", usingPlan.CancelDate); + } + planItem.IsCancel = usingPlan.IsCancel; + planItem.FinishMan = usingPlan.FinishMan; + planItem.OrderTime = usingPlan.OrderTime; + if (usingPlan.OrderDate != null) + { + planItem.OrderDate = string.Format("{0:yyyy-MM-dd}", usingPlan.OrderDate); + } + planItem.CancelResult = usingPlan.CancelResult; + planItem.IsSubmit = usingPlan.IsSubmit; + planItem.UsingUnit = usingPlan.UsingUnit; + planItem.IsNeedConfirm = usingPlan.IsNeedConfirm; + planItem.InPutMan = usingPlan.InPutMan; + planItem.IsSteelStru = usingPlan.IsSteelStru; + planItem.TeamGroupId = usingPlan.TeamGroupId; + planItem.STE_ID = usingPlan.STE_ID; + planItem.IsFinish = usingPlan.IsFinish; + planItem.STE_Name = usingPlan.STE_Name; + planItem.UnitStoreId = BLL.UnitStoreService.GetUnitStoreNameById(usingPlan.UnitStoreId); + + if (!string.IsNullOrEmpty(planItem.ProjectId)) + { + var project = db.Base_Project.Where(x => x.ProjectId == planItem.ProjectId).FirstOrDefault(); + if (project != null) + { + planItem.ProjectName = project.ProjectName; + planItem.ProjectCode = project.ProjectCode; + } + } + if (!string.IsNullOrEmpty(planItem.WeldId)) + { + var weldInfo = db.Weld_WeldInfo.Where(x => x.WeldId == planItem.WeldId).FirstOrDefault(); + if (weldInfo != null) + { + planItem.WeldName = weldInfo.WeldName; + planItem.WeldSpec = weldInfo.WeldSpec; + planItem.WeldCode = weldInfo.WeldCode; + } + if (weldInfo != null && !string.IsNullOrEmpty(weldInfo.WeldTypeId)) + { + var weldType = db.Weld_WeldType.Where(x => x.WeldTypeId == weldInfo.WeldTypeId).FirstOrDefault(); + + if (weldType != null) + { + + } + } + } + + if (!string.IsNullOrEmpty(planItem.UsingManOne)) + { + planItem.UsingManOneName = db.HJGL_BS_Welder.Where(x => x.WED_ID == planItem.UsingManOne).Select(x => x.WED_Name).FirstOrDefault(); + } + if (!string.IsNullOrEmpty(planItem.UsingManTwo)) + { + planItem.UsingManTwoName = db.HJGL_BS_Welder.Where(x => x.WED_ID == planItem.UsingManTwo).Select(x => x.WED_Name).FirstOrDefault(); + } + if (!string.IsNullOrEmpty(planItem.UsingUnit)) + { + planItem.UsingUnitName = db.Base_Unit.Where(x => x.UnitId == planItem.UsingUnit).Select(x => x.UnitName).FirstOrDefault(); + } + if (!string.IsNullOrEmpty(planItem.InPutMan)) + { + planItem.InPutManName = db.Sys_User.Where(x => x.UserId == planItem.InPutMan).Select(x => x.UserName).FirstOrDefault(); + } + if (!string.IsNullOrEmpty(planItem.TeamGroupId)) + { + planItem.TeamGroupName = db.Base_TeamGroup.Where(x => x.TeamGroupId == planItem.TeamGroupId).Select(x => x.TeamGroupName).FirstOrDefault(); + } + + + respone.data = planItem; + } + return respone; + } + public static Model.ResponeData welderQueIsPass(string welderId, string steelType, bool isSteelStru) { Model.ResponeData respone = new ResponeData(); @@ -523,11 +621,12 @@ namespace BLL.API where x.ProjectId == projectId select new { + WED_ID = y.WED_ID, WED_Code = y.WED_Code, WED_Name = y.WED_Name, }; - responeData.data = res.Skip(page * pageSize).Take(pageSize); + responeData.data = res.Skip(page * pageSize).Take(pageSize).ToList(); } } catch (Exception ex) @@ -540,5 +639,45 @@ namespace BLL.API } #endregion + #region 根据项目id获取可选择的焊工信息列表 + /// + /// 根据项目id获取可选择的焊工信息列表 + /// + /// 人员ID + /// 交换类型 + /// + public static Model.ResponeData getProjectWelderSelectList(string projectId, string str, int page, int pageSize) + { + var responeData = new Model.ResponeData(); + try + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var res = db.HJGL_BS_Welder + .Where(w => w.IsOAM == true) // 对应 AND IsOAM=1 + .Where(w => !db.Project_Welder + .Any(pw => pw.ProjectId == projectId && pw.WED_ID == w.WED_ID)) // 对应 NOT IN 子查询 + .Select(w => new + { + WED_ID = w.WED_ID, + WED_Code = w.WED_Code, + WED_Name = w.WED_Name + "(" + w.WED_Code + ")", + }); + if (!string.IsNullOrEmpty(str)) + { + res = res.Where(w => w.WED_Code.Contains(str) || w.WED_Name.Contains(str)); + } + responeData.data = res.Skip(page * pageSize).Take(pageSize).ToList(); + } + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + ErrLogInfo.WriteLog(ex, "根据项目id获取可选择的焊工信息列表", "WeldController.getProjectWelderSelectList"); + } + return responeData; + } + #endregion } } diff --git a/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs b/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs index 757ff32..8770e1f 100644 --- a/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs +++ b/HJGL_DS/BLL/HJGL/WeldingManage/HJGL_PW_JointInfoService.cs @@ -1376,5 +1376,145 @@ namespace BLL } return name; } + + /// + /// 根据焊口Id获取焊口信息 + /// + /// + /// + public static Model.HJGL_SpRpWeldReportItem GetJointItemByJotID(string jot_id) + { + Model.HJGL_SpRpWeldReportItem newWeldReportItem = new Model.HJGL_SpRpWeldReportItem(); + Model.SGGLDB db = Funs.DB; + var jotInfo = db.HJGL_PW_JointInfo.FirstOrDefault(e => e.JOT_ID == jot_id); + var jotView = db.HJGL_View_JointInfo.FirstOrDefault(e => e.JOT_ID == jot_id); + newWeldReportItem.JOT_ID = jotInfo.JOT_ID; + newWeldReportItem.JOT_JointNo = jotInfo.JOT_JointNo; + newWeldReportItem.ProjectId = jotInfo.ProjectId; + var isoInfo = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(jotInfo.ISO_ID); + if (isoInfo != null) + { + newWeldReportItem.ISO_IsoNo = isoInfo.ISO_IsoNo; + newWeldReportItem.ISO_Id = isoInfo.ISO_ID; + + } + if (jotInfo.WLO_Code == "F") + { + newWeldReportItem.WLO_CodeName = "现场安装"; + newWeldReportItem.WLO_CodeID = "F"; + } + else + { + newWeldReportItem.WLO_CodeName = "预制"; + newWeldReportItem.WLO_CodeID = "S"; + } + + newWeldReportItem.JOT_JointAttribute = jotInfo.JOT_JointAttribute; + string steName = string.Empty; + if (jotView.STE_Name1 != null && jotView.STE_Name2 != null && jotView.STE_Name1 != jotView.STE_Name2) + { + steName = jotView.STE_Name1 + "/" + jotView.STE_Name2; + } + else if (jotView.STE_Name1 != null) + { + steName = jotView.STE_Name1; + } + else if (jotView.STE_Name2 != null) + { + steName = jotView.STE_Name2; + } + newWeldReportItem.STE_Code = steName; + var joty = BLL.HJGL_WeldService.GetJointTypeByID(jotInfo.JOTY_ID); + newWeldReportItem.JOTY_Group = joty.JOTY_Group; + + if (jotInfo.JOT_JointAttribute == "固定") + { + if (joty != null && (joty.JOTY_Group == "2" || joty.JOTY_Group == "3")) + { + newWeldReportItem.JOT_Location = "5F"; + } + else if (joty != null && joty.JOTY_Group == "1") + { + newWeldReportItem.JOT_Location = "2G"; + } + else + { + newWeldReportItem.JOT_Location = "5G"; + } + } + else + { + if (joty != null && (joty.JOTY_Group == "2" || joty.JOTY_Group == "3")) + { + newWeldReportItem.JOT_Location = "1F"; + } + else + { + newWeldReportItem.JOT_Location = "1G"; + } + } + newWeldReportItem.JOT_Size = jotInfo.JOT_Size; + newWeldReportItem.JOT_DoneDin = jotInfo.JOT_Size; + newWeldReportItem.JOT_Dia = jotInfo.JOT_Dia; + newWeldReportItem.JOT_Sch = jotInfo.JOT_Sch; + if (!string.IsNullOrEmpty(jotInfo.JOT_CellWelder)) //盖面焊工 + { + var cellWelder = BLL.HJGL_PersonManageService.GetWelderByWenId(jotInfo.JOT_CellWelder); + if (cellWelder != null) + { + newWeldReportItem.JOT_CellWelderID = cellWelder.WED_ID; + newWeldReportItem.JOT_CellWelderCode = cellWelder.WED_Name + "(" + cellWelder.WED_Code + ")"; + } + } + if (!string.IsNullOrEmpty(jotInfo.JOT_FloorWelder)) //打底焊工 + { + var floorWelder = BLL.HJGL_PersonManageService.GetWelderByWenId(jotInfo.JOT_FloorWelder); + if (floorWelder != null) + { + newWeldReportItem.JOT_FloorWelderID = floorWelder.WED_ID; + newWeldReportItem.JOT_FloorWelderCode = floorWelder.WED_Name + "(" + floorWelder.WED_Code + ")"; + } + } + if (!string.IsNullOrEmpty(jotInfo.WME_ID)) + { + var weldingMethod = BLL.HJGL_WeldingMethodService.GetWeldMethodByWMEID(jotInfo.WME_ID); + if (weldingMethod != null) + { + newWeldReportItem.WME_ID = weldingMethod.WME_ID; + newWeldReportItem.WME_Name = weldingMethod.WME_Name; + } + } + if (!string.IsNullOrEmpty(jotInfo.JOT_WeldMat)) + { + //var weldMat = BLL.HJGL_ConsumablesService.getConsumablesByConsumablesId(jotInfo.JOT_WeldMat); + //if (weldMat != null) + //{ + // newWeldReportItem.JOT_WeldMat = weldMat.WMT_ID; + // newWeldReportItem.WeldMatCode = weldMat.WMT_MatCode; + //} + var weldMat = (from x in Funs.DB.View_WeldInfoDropDownLists where x.WeldId == jotInfo.JOT_WeldMat select x).FirstOrDefault(); + if (weldMat != null) + { + newWeldReportItem.JOT_WeldMat = weldMat.WeldId; + newWeldReportItem.WeldMatCode = weldMat.WeldName; + } + } + if (!string.IsNullOrEmpty(jotInfo.JOT_WeldSilk)) + { + //var weldSilk = BLL.HJGL_ConsumablesService.getConsumablesByConsumablesId(jotInfo.JOT_WeldSilk); + //if (weldSilk != null) + //{ + // newWeldReportItem.JOT_WeldSilk = weldSilk.WMT_ID; + // newWeldReportItem.WeldSilkCode = weldSilk.WMT_MatCode; + //} + var weldSilk = Funs.DB.View_WeldInfoDropDownLists.FirstOrDefault(x => x.WeldId == jotInfo.JOT_WeldSilk); + if (weldSilk != null) + { + newWeldReportItem.JOT_WeldSilk = weldSilk.WeldId; + newWeldReportItem.WeldSilkCode = weldSilk.WeldName; + } + } + return newWeldReportItem; + } } } diff --git a/HJGL_DS/Model/APIItem/WeldMethodItem.cs b/HJGL_DS/Model/APIItem/WeldMethodItem.cs new file mode 100644 index 0000000..59df335 --- /dev/null +++ b/HJGL_DS/Model/APIItem/WeldMethodItem.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class WeldMethodItem + { + public string WME_ID { get; set; } + + /** + * id + */ + + + public string WME_Name { get; set; } + + /** + * 名称 + */ + } +} diff --git a/HJGL_DS/Model/HJGL/HJGL_SpRpWeldReportItem.cs b/HJGL_DS/Model/HJGL/HJGL_SpRpWeldReportItem.cs index 440189a..74f3fc1 100644 --- a/HJGL_DS/Model/HJGL/HJGL_SpRpWeldReportItem.cs +++ b/HJGL_DS/Model/HJGL/HJGL_SpRpWeldReportItem.cs @@ -27,6 +27,14 @@ namespace Model set; } /// + /// 项目id + /// + public string ProjectId + { + get; + set; + } + /// /// 索引 /// public int SortIndex diff --git a/HJGL_DS/Model/Model.csproj b/HJGL_DS/Model/Model.csproj index 30cda61..ff75728 100644 --- a/HJGL_DS/Model/Model.csproj +++ b/HJGL_DS/Model/Model.csproj @@ -72,6 +72,7 @@ + diff --git a/HJGL_DS/WebAPI/Controllers/BaseController.cs b/HJGL_DS/WebAPI/Controllers/BaseController.cs index 219ae31..558f254 100644 --- a/HJGL_DS/WebAPI/Controllers/BaseController.cs +++ b/HJGL_DS/WebAPI/Controllers/BaseController.cs @@ -201,6 +201,57 @@ namespace WebAPI.Controllers return respone; } + [HttpGet] + public Model.ResponeData weldMethodList() + { + Model.ResponeData respone = new ResponeData(); + try + { + + return APIBaseServices.weldMethodList(); + } + catch (Exception e) + { + respone.code = 0; + respone.message = e.Message; + } + return respone; + } + + [HttpGet] + public Model.ResponeData weldSilkList() + { + Model.ResponeData respone = new ResponeData(); + try + { + + return APIBaseServices.weldSilkList(); + } + catch (Exception e) + { + respone.code = 0; + respone.message = e.Message; + } + return respone; + } + + [HttpGet] + public Model.ResponeData weldMatList() + { + Model.ResponeData respone = new ResponeData(); + try + { + + return APIBaseServices.weldMatList(); + } + catch (Exception e) + { + respone.code = 0; + respone.message = e.Message; + } + return respone; + } + [HttpGet] public Model.ResponeData getVersion() { diff --git a/HJGL_DS/WebAPI/Controllers/JointInfoController.cs b/HJGL_DS/WebAPI/Controllers/JointInfoController.cs index b9ca994..ca02e3a 100644 --- a/HJGL_DS/WebAPI/Controllers/JointInfoController.cs +++ b/HJGL_DS/WebAPI/Controllers/JointInfoController.cs @@ -431,5 +431,31 @@ namespace WebAPI.Controllers return isok; } #endregion + + #region 根据焊口ID获取焊口信息 + /// + /// 根据焊口ID获取焊口信息 + /// + /// + /// + [HttpGet] + public Model.ResponeData getJointInfoById(string jotId) + { + var responeData = new Model.ResponeData(); + try + { + responeData.data = HJGL_PW_JointInfoService.GetJointItemByJotID(jotId); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + #endregion + + } } \ No newline at end of file diff --git a/HJGL_DS/WebAPI/Controllers/WeldController.cs b/HJGL_DS/WebAPI/Controllers/WeldController.cs index 8e54900..6378b64 100644 --- a/HJGL_DS/WebAPI/Controllers/WeldController.cs +++ b/HJGL_DS/WebAPI/Controllers/WeldController.cs @@ -60,6 +60,22 @@ namespace WebAPI.Controllers return respone; } [HttpGet] + public Model.ResponeData getUsingPlanTempByUserId(string userId) + { + Model.ResponeData respone = new ResponeData(); + try + { + + return APIWeldServices.getUsingPlanTempByUserId(userId); + } + catch (Exception e) + { + respone.code = 0; + respone.message = e.Message; + } + return respone; + } + [HttpGet] public Model.ResponeData welderQueIsPass(string welderId, string steelType, bool isSteelStru) { Model.ResponeData respone = new ResponeData(); @@ -168,6 +184,32 @@ namespace WebAPI.Controllers } } } + #region 添加到临时表,以供下次登录时加载当前登录人保存的记录数据 + BLL.UsingPlanTempService.DeleteUsingPlanTempByUserId(usingPlan.InPutMan); + Model.Weld_UsingPlan_Temp newTemp = new Model.Weld_UsingPlan_Temp(); + newTemp.UsingPlanTempId = BLL.SQLHelper.GetNewID(typeof(Model.Weld_UsingPlan_Temp)); + newTemp.UnitStoreId = usingPlan.UnitStoreId; + newTemp.WeldId = usingPlan.WeldId; + newTemp.ProjectId = usingPlan.ProjectId; + newTemp.UsePosition = usingPlan.UsePosition; + newTemp.UsingUnit = usingPlan.UsingUnit; + newTemp.STE_ID = usingPlan.STE_ID; + newTemp.STE_Name = usingPlan.STE_Name; + newTemp.Amount = usingPlan.Amount; + newTemp.UsingManOne = usingPlan.UsingManOne; + newTemp.InPutDate = DateTime.Now; + newTemp.OrderDate = DateTime.Now; + newTemp.OrderTime = usingPlan.OrderTime; + newTemp.TeamGroupId = usingPlan.TeamGroupId; + newTemp.CancelDate = BLL.Funs.GetNewDateTime(usingPlan.CancelDate); + newTemp.IsCancel = usingPlan.IsCancel; + newTemp.CancelResult = usingPlan.CancelResult; + newTemp.IsSubmit = usingPlan.IsSubmit; + newTemp.InPutMan = usingPlan.InPutMan; + newTemp.Type = "1"; + newTemp.IsSteelStru = usingPlan.IsSteelStru; + BLL.UsingPlanTempService.AddUsingPlan(newTemp); + #endregion return APIWeldServices.addUsingPlan(usingPlan); } catch (Exception e) @@ -229,5 +271,54 @@ namespace WebAPI.Controllers } return respone; } + + [HttpGet] + public Model.ResponeData getProjectWelderSelectList(string projectId, string str, int page, int pageSize) + { + Model.ResponeData respone = new ResponeData(); + try + { + + return APIWeldServices.getProjectWelderSelectList(projectId, str, page, pageSize); + } + catch (Exception e) + { + respone.code = 0; + respone.message = e.Message; + } + return respone; + } + + [HttpGet] + public Model.ResponeData saveProjectWelderSelectList(string projectId, string wed_ids) + { + Model.ResponeData respone = new ResponeData(); + try + { + using (Model.SGGLDB db = new Model.SGGLDB(BLL.Funs.ConnString)) + { + string[] ids = wed_ids.Split(','); + List list = new List(); + foreach (string id in ids) + { + Model.Project_Welder newProjectWelder = new Model.Project_Welder(); + newProjectWelder.WED_ID = id; + newProjectWelder.ProjectId = projectId; + newProjectWelder.IsSelected = true; + newProjectWelder.IsApprove = true; + newProjectWelder.ProjectWelderId = BLL.SQLHelper.GetNewID(typeof(Model.Project_Welder)); + list.Add(newProjectWelder); + } + db.Project_Welder.InsertAllOnSubmit(list); + db.SubmitChanges(); + } + } + catch (Exception e) + { + respone.code = 0; + respone.message = e.Message; + } + return respone; + } } } \ No newline at end of file From c45e79932b5e11549fe008621a5c4ef0dcd1ebbc Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Fri, 7 Aug 2026 11:13:22 +0800 Subject: [PATCH 7/9] =?UTF-8?q?20260807=20=E6=89=B9=E9=87=8F=E7=94=9F?= =?UTF-8?q?=E6=88=90=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/HJGLDB_DS_2026-08-07_bwj.sql | 22 +++ HJGL_DS/BLL/BLL.csproj | 4 + HJGL_DS/BLL/Common/CreateQRCodeService.cs | 85 ++++++++++ HJGL_DS/BLL/packages.config | 1 + .../File/Fastreport/焊口打印.frx | 156 ++++++++++++++++++ .../HotProessManage/638555165249887899.png | Bin 3555 -> 0 bytes .../HotProessManage/638555165250157901.gif | Bin 879 -> 0 bytes .../HotProessManage/638555165250197900.gif | Bin 1377 -> 0 bytes .../HotProessManage/638555165250247900.gif | Bin 1172 -> 0 bytes .../HotProessManage/638555165250297898.gif | Bin 1430 -> 0 bytes .../639008956132961833_焊口信息导入模板.xls | Bin 478720 -> 0 bytes .../HJGL/WeldingManage/JointInfo.aspx | 6 + .../HJGL/WeldingManage/JointInfo.aspx.cs | 103 ++++++++++++ .../WeldingManage/JointInfo.aspx.designer.cs | 27 +++ HJGL_DS/Model/Model.cs | 24 +++ 15 files changed, 428 insertions(+) create mode 100644 DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql create mode 100644 HJGL_DS/BLL/Common/CreateQRCodeService.cs create mode 100644 HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165249887899.png delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250157901.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250197900.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250247900.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250297898.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/WeldMat/QualityCertificate/639008956132961833_焊口信息导入模板.xls diff --git a/DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql new file mode 100644 index 0000000..b4c6ac9 --- /dev/null +++ b/DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql @@ -0,0 +1,22 @@ + +alter table HJGL_PW_JointInfo add QRCodeAttachUrl nvarchar(200) +go + +CREATE view [dbo].[View_PrintJointInfo] +as +select joint.JOT_ID, +joint.ProjectId, +joint.ISO_ID, +unit.UnitName, +installation.InstallationName, +iso.ISO_IsoNo, +joint.JOT_JointNo, +joint.JOT_JointDesc, +Steel.STE_Code, +joint.QRCodeAttachUrl +from HJGL_PW_JointInfo as joint +left join HJGL_PW_IsoInfo as iso on iso.ISO_ID = joint.ISO_ID +left join Project_Installation as installation on installation.InstallationId = joint.InstallationId +left join Base_Unit as unit on unit.UnitId = iso.BSU_ID +LEFT JOIN HJGL_BS_Steel AS Steel ON Steel.STE_ID = joint.STE_ID +GO diff --git a/HJGL_DS/BLL/BLL.csproj b/HJGL_DS/BLL/BLL.csproj index 499139d..37b3876 100644 --- a/HJGL_DS/BLL/BLL.csproj +++ b/HJGL_DS/BLL/BLL.csproj @@ -112,6 +112,9 @@ + + ..\packages\ThoughtWorks.QRCode.1.1.0\lib\ThoughtWorks.QRCode.dll + @@ -135,6 +138,7 @@ + diff --git a/HJGL_DS/BLL/Common/CreateQRCodeService.cs b/HJGL_DS/BLL/Common/CreateQRCodeService.cs new file mode 100644 index 0000000..a8a3034 --- /dev/null +++ b/HJGL_DS/BLL/Common/CreateQRCodeService.cs @@ -0,0 +1,85 @@ +using System; +using System.IO; +using System.Text; +using ThoughtWorks.QRCode.Codec; +using System.Web.UI; + +namespace BLL +{ + /// + /// 上传附件相关 + /// + public class CreateQRCodeService + { + /// + /// 生成二维码方法一 + /// + public static string CreateCode_Simple(string nr) + { + string imageUrl = string.Empty; + if (!string.IsNullOrEmpty(nr)) + { + QRCodeEncoder qrCodeEncoder = new QRCodeEncoder + { + QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE, + QRCodeScale = nr.Length, + QRCodeVersion = 0, + QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M + }; + System.Drawing.Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8); + string filepath = Funs.RootPath + UploadFileService.QRCodeImageFilePath; + //如果文件夹不存在,则创建 + if (!Directory.Exists(filepath)) + { + Directory.CreateDirectory(filepath); + } + string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; + FileStream fs = new FileStream(filepath + filename, FileMode.OpenOrCreate, FileAccess.Write); + image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); + fs.Close(); + image.Dispose(); + imageUrl= UploadFileService.QRCodeImageFilePath + filename; + } + return imageUrl; + } + + //public static string CreateCode_Simple2(string nr) + //{ + // string imageUrl = string.Empty; + // if (!string.IsNullOrEmpty(nr)) + // { + // QRCodeEncoder qrCodeEncoder = new QRCodeEncoder + // { + // QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE, + // QRCodeScale = nr.Length, + // QRCodeVersion = 0, + // QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M + // }; + // System.Drawing.Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8); + // string filepath = Funs.RootPath + UploadFileService.WelderQRCodeImageFilePath; + // //如果文件夹不存在,则创建 + // if (!Directory.Exists(filepath)) + // { + // Directory.CreateDirectory(filepath); + // } + // string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; + // FileStream fs = new FileStream(filepath + filename, FileMode.OpenOrCreate, FileAccess.Write); + // image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); + // fs.Close(); + // image.Dispose(); + // imageUrl = UploadFileService.WelderQRCodeImageFilePath + filename; + // } + // return imageUrl; + //} + + /// + /// + /// + /// + public static bool isHaveImage(string url) + { + string filepath = Funs.RootPath + url; + return File.Exists(filepath); + } + } +} \ No newline at end of file diff --git a/HJGL_DS/BLL/packages.config b/HJGL_DS/BLL/packages.config index 3816bf3..f5895ec 100644 --- a/HJGL_DS/BLL/packages.config +++ b/HJGL_DS/BLL/packages.config @@ -5,4 +5,5 @@ + \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx new file mode 100644 index 0000000..741fb45 --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx @@ -0,0 +1,156 @@ + + + using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Drawing; +using System.Data; +using FastReport; +using FastReport.Data; +using FastReport.Dialog; +using FastReport.Barcode; +using FastReport.Table; +using FastReport.Utils; + +namespace FastReport +{ + public class ReportScript + { + + /** + private void Table3_ManualBuild(object sender, EventArgs e) + { + // get the data source by its name + DataSourceBase rowData = Report.GetDataSource("Data"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Tabel_Data.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Tabel_Data.PrintColumns(); + + // now enumerate the data source and print the table body + while (rowData.HasMoreRows) + { + // print the table body + Tabel_Data.PrintRow(0); + Tabel_Data.PrintColumns(); + + // go next data source row + rowData.Next(); + } + + + // print the last table row - it is a footer + //Tabel_Data.PrintRow(2); + //Table3.PrintColumns(); + } + + + + private void Table4_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Table1"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Table4.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Table4.PrintColumns(); + + // now enumerate the data source and print the table body + + // print the table body + Table4.PrintRow(1); + Table4.PrintColumns(); + Table4.PrintRow(2); + Table4.PrintColumns(); + Table4.PrintRow(3); + Table4.PrintColumns(); + Table4.PrintRow(4); + Table4.PrintColumns(); + Table4.PrintRow(5); + Table4.PrintColumns(); + Table4.PrintRow(6); + Table4.PrintColumns(); + // go next data source row + rowData.Next(); + + } + + private void Table5_ManualBuild(object sender, EventArgs e) + { + Table5.PrintRow(0); + Table5.PrintColumns(); + Table5.PrintRow(1); + Table5.PrintColumns(); + } + **/ + + + + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165249887899.png b/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165249887899.png deleted file mode 100644 index 99bc9414a4ee44261149d6a04655ab5def7ba89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3555 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 YRwMhR9L<9D=gV@=-r0_P=2FuC0V-|S;{X5v diff --git a/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250157901.gif b/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250157901.gif deleted file mode 100644 index 21f6832a5934837f0f34ee98572ccd72b17a1163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmZ?wbhEHbbYYNUc*el+9|RbH@IM2H17rayAilnH|L(P0m(O24xfh7`msRYackuJl zBcIot{Icon*RtN#LA}SzcK%eW*uVbb>&=(n?78`V|LqTl?tVJ``0Le|Keu0hd;Rs# zE6=~ERjgL)Jr=a~uG;+byI=oY{`%+D`wuVQy?^@o^Yy!T?!9+?<&|C6U*9d?RIy~$ zlFaN(kBKf(6%h$Vas8*;V`m4K9?Cj;|6tC#xa+UaU%z>^dtu1L=_P-^AN&3w=KH<$ z!}}ILJsI-uYW?TyRUa-_+`F*&)#<{kr`Jwyj{Es|^Xg8g+q=ploFon}&1*~6K0VX- z`N8gs+b912{BVDj)Sbm4AFggJE6ln%!)tH1&*2uktBcZqo&?H1U7n)w^Z3-;8(aTA zJbL}~@#hv6pFe;8`0?ZW_wOG+etiG_{kwPXUb=MY+_`hdj~_pH@Zj#=3MsD_;x%1{PSh#4hoQ$-r#5BnzYu2t?BehaqcKz0ETV-3Mx9{1zKw3h4*7n4G z$CkG3EjWIxeXV6iW@c7)UT9(7J}!kjcke2yEIzj;BPl8Q#fy~u1v=dKJ}A%T5|QIn zlH>T4ApCIA<0Y3mIvoU!wF)m$_ z#CvLOe6}BEbF5ml!Zex3uHwOib|J0k6&4?tyiYmo%lWF(>F23b4YOpkS(eT!9Fx>T z_N6@ZoD{v6C3N@0-{}iOrH%LwE#o+J*nOf-q|b*b&l^|RF4Q?AvE+$Jx!%!rYhor? z9xmbNm$Pm0Ir)*(F>J?srLYaRh2Cq3n0}Mf{IvbJfOd=f&bJ}ggVPK9Tvx70WbT@@ zY1-O55g$*+h84)gXs7)-xneoLY1)ebCRUFuDcy_}7yew{9P@aK?ag;v79HzV30&h* z*p$lND{T-};P)rWDJ*Zp`$<)f`#i;UBX)!+$~zz9PTQu$tGso|Nl`WR2frUFWKRG0 ze=&nGcLPh)q;46BjDQDCaz}zV*=C$M{-AF8lAul*`2>cOZ8BvyPN+;}VPdcb00%R| A;{X5v diff --git a/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250197900.gif b/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250197900.gif deleted file mode 100644 index 3da3cfee85bb029b3c6a721895a18be4a57d38b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1377 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 diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx index 1c3ed49..2b82106 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx @@ -124,6 +124,12 @@ + + + + +
diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs index bee5856..65cb2a1 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs @@ -1538,5 +1538,108 @@ namespace FineUIPro.Web.HJGL.WeldingManage ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } + + /// + /// 批量生成二维码 + /// + /// + /// + protected void btnQR_Click(object sender, EventArgs e) + { + Model.SGGLDB db = Funs.DB; + var p = db.HJGL_PW_IsoInfo.Where(x => x.ISO_ID == this.tvControlItem.SelectedNodeID).FirstOrDefault(); + if (p != null) + { + var getJoints = from x in db.HJGL_PW_JointInfo + where x.ProjectId == this.ProjectId && x.ISO_ID == this.tvControlItem.SelectedNodeID + select x; + int num = 0; + if (getJoints.Any()) + { + foreach (var item in getJoints) + { + string url = CreateQRCodeService.CreateCode_Simple(item.JOT_ID); + if (!string.IsNullOrEmpty(url)) + { + item.QRCodeAttachUrl = url; + num++; + } + } + db.SubmitChanges(); + } + ShowNotify("操作完成,新生成二维码" + num.ToString() + "条", MessageBoxIcon.Success); + } + else + { + Alert.ShowInTop("请选择一条管线!", MessageBoxIcon.Warning); + return; + } + } + + #region 打印二维码 + protected void btnPrintJoint_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID)) + { + string initTemplatePath = ""; + string rootPath = Server.MapPath("~/"); + BLL.Common.FastReportService.ResetData(); + + Dictionary keyValuePairs = new Dictionary(); + //keyValuePairs.Add("ProjectName", projectName); + BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); + + string strSql = "select * from View_PrintJointInfo where ProjectId=@projectId and ISO_ID =@isoId"; + + List listStr = new List + { + new SqlParameter("@projectId", this.CurrUser.LoginProjectId), + new SqlParameter("@isoId", this.tvControlItem.SelectedNodeID), + }; + + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + + DataTable dt = new DataTable(); + dt.TableName = "Table1"; + dt.Columns.Add("UnitName"); + dt.Columns.Add("WorkAreaCode"); + dt.Columns.Add("ISO_IsoNo"); + dt.Columns.Add("JOT_JointNo"); + dt.Columns.Add("JOT_JointDesc"); + dt.Columns.Add("STE_Code"); + dt.Columns.Add("QRCodeAttachUrl"); + + DataView dv = tb.DefaultView;//获取表视图 + dv.Sort = "JOT_JointNo ASC";//按照ID排序 + tb = dv.ToTable();//转为表 + DataRow[] rows = tb.DefaultView.ToTable().Select(); + foreach (var row in rows) + { + var newRow = dt.NewRow(); + newRow["ISO_IsoNo"] = row["ISO_IsoNo"].ToString(); + newRow["UnitName"] = row["UnitName"].ToString(); + newRow["WorkAreaCode"] = row["InstallationName"].ToString(); + newRow["JOT_JointNo"] = row["JOT_JointNo"].ToString(); + newRow["JOT_JointDesc"] = row["JOT_JointDesc"].ToString(); + newRow["STE_Code"] = row["STE_Code"].ToString(); + newRow["QRCodeAttachUrl"] = Funs.RootPath + row["QRCodeAttachUrl"].ToString(); + dt.Rows.Add(newRow); + } + BLL.Common.FastReportService.AddFastreportTable(dt); + initTemplatePath = "File\\Fastreport\\焊口打印.frx"; + + if (File.Exists(rootPath + initTemplatePath)) + { + PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../../common/ReportPrint/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); + } + } + else + { + Alert.ShowInTop("请选择要打印的管线!", MessageBoxIcon.Warning); + return; + } + } + #endregion } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs index 9ab0cdc..37abab8 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs @@ -365,6 +365,33 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.RadioButtonList rbHotProessResult; + /// + /// ToolbarFill3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill3; + + /// + /// btnQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQR; + + /// + /// btnPrintJoint 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPrintJoint; + /// /// Toolbar5 控件。 /// diff --git a/HJGL_DS/Model/Model.cs b/HJGL_DS/Model/Model.cs index 614c7b9..31e79bb 100644 --- a/HJGL_DS/Model/Model.cs +++ b/HJGL_DS/Model/Model.cs @@ -48941,6 +48941,8 @@ namespace Model private string _Y2; + private string _QRCodeAttachUrl; + private EntityRef _HJGL_BO_BatchDetail; private EntitySet _HJGL_BO_PreWeldReportMain; @@ -49201,6 +49203,8 @@ namespace Model partial void OnX2Changed(); partial void OnY2Changing(string value); partial void OnY2Changed(); + partial void OnQRCodeAttachUrlChanging(string value); + partial void OnQRCodeAttachUrlChanged(); #endregion public HJGL_PW_JointInfo() @@ -51303,6 +51307,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QRCodeAttachUrl", DbType="NVarChar(200)")] + public string QRCodeAttachUrl + { + get + { + return this._QRCodeAttachUrl; + } + set + { + if ((this._QRCodeAttachUrl != value)) + { + this.OnQRCodeAttachUrlChanging(value); + this.SendPropertyChanging(); + this._QRCodeAttachUrl = value; + this.SendPropertyChanged("QRCodeAttachUrl"); + this.OnQRCodeAttachUrlChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_BO_BatchDetail_HJGL_PW_JointInfo", Storage="_HJGL_BO_BatchDetail", ThisKey="JOT_ID", OtherKey="JOT_ID", IsUnique=true, IsForeignKey=false, DeleteRule="NO ACTION")] public HJGL_BO_BatchDetail HJGL_BO_BatchDetail { From 29ceb27d39fb075f42753ff657fc064a19272462 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Fri, 7 Aug 2026 14:35:46 +0800 Subject: [PATCH 8/9] 1 --- HJGL_DS/BLL/API/APIWeldServices.cs | 2 +- .../FineUIPro.Web/FineUIPro.Web.csproj.user | 4 +-- .../PublishProfiles/FolderProfile.pubxml.user | 33 ++++++++++++++----- HJGL_DS/WebAPI/WebAPI.csproj.user | 4 +-- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/HJGL_DS/BLL/API/APIWeldServices.cs b/HJGL_DS/BLL/API/APIWeldServices.cs index b45f1de..35f1ed6 100644 --- a/HJGL_DS/BLL/API/APIWeldServices.cs +++ b/HJGL_DS/BLL/API/APIWeldServices.cs @@ -25,7 +25,7 @@ namespace BLL.API projectids.AddRange(wpids); if (userId == BLL.Const.GlyId) { - projectids = (from x in db.Base_Project where x.ProjectSoft == "1" select x.ProjectId).ToList(); + projectids = (from x in db.Base_Project where x.ProjectSoft == "1" select x.ProjectId).Take(2000).ToList(); } var q = from x in db.Weld_UsingPlan where projectids.Contains(x.ProjectId) && (x.UsingManOne == userId || x.InPutMan == userId) select x; diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user index e3436b8..abef49a 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,8 +1,8 @@ - + true - Release|Any CPU + Debug|Any CPU diff --git a/HJGL_DS/WebAPI/Properties/PublishProfiles/FolderProfile.pubxml.user b/HJGL_DS/WebAPI/Properties/PublishProfiles/FolderProfile.pubxml.user index 67bbaa5..5411168 100644 --- a/HJGL_DS/WebAPI/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/HJGL_DS/WebAPI/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -72,20 +72,26 @@ 07/03/2024 11:01:07 + + 04/12/2024 09:54:20 + 09/10/2013 16:29:20 09/10/2013 16:29:20 + + 04/12/2024 09:54:20 + - 12/19/2025 10:46:46 + 08/07/2026 10:46:18 - 07/28/2025 20:15:00 + 12/31/2025 16:32:37 - 12/19/2025 10:46:46 + 08/07/2026 10:46:18 12/17/2020 21:32:28 @@ -115,13 +121,13 @@ 07/25/2012 11:48:56 - 12/19/2025 10:46:45 + 08/07/2026 10:46:10 - 12/19/2025 10:46:45 + 08/07/2026 10:46:10 - 03/17/2021 20:03:36 + 11/28/2018 02:07:34 11/27/2018 17:59:08 @@ -288,6 +294,15 @@ 05/24/2018 13:38:24 + + 08/07/2026 10:46:25 + + + 07/28/2025 11:00:31 + + + 08/07/2026 10:46:25 + 02/01/2018 12:17:18 @@ -319,10 +334,10 @@ 02/01/2018 12:20:56 - 12/19/2025 10:46:46 + 08/07/2026 10:46:32 - 12/19/2025 10:46:46 + 08/07/2026 10:46:32 01/23/2014 13:57:34 @@ -448,7 +463,7 @@ 07/03/2024 11:01:07 - 12/19/2025 10:47:09 + 08/07/2026 10:46:51 \ No newline at end of file diff --git a/HJGL_DS/WebAPI/WebAPI.csproj.user b/HJGL_DS/WebAPI/WebAPI.csproj.user index 8cd7f1f..a48b337 100644 --- a/HJGL_DS/WebAPI/WebAPI.csproj.user +++ b/HJGL_DS/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@ - + - Release|Any CPU + Debug|Any CPU FolderProfile true From 890db3efc86ba61c170b3252939334cbedd8b6c7 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Fri, 7 Aug 2026 14:38:05 +0800 Subject: [PATCH 9/9] 1 --- HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- HJGL_DS/WebAPI/WebAPI.csproj.user | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user index abef49a..80f7761 100644 --- a/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL_DS/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -2,7 +2,7 @@ true - Debug|Any CPU + Release|Any CPU diff --git a/HJGL_DS/WebAPI/WebAPI.csproj.user b/HJGL_DS/WebAPI/WebAPI.csproj.user index a48b337..28be9c4 100644 --- a/HJGL_DS/WebAPI/WebAPI.csproj.user +++ b/HJGL_DS/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU FolderProfile true