From e51547255abd99ee3405ec661f4a091ee6601756 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Wed, 17 Apr 2024 17:02:46 +0800 Subject: [PATCH] =?UTF-8?q?20240417=20=E5=9F=B9=E8=AE=AD=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Comprehensive/TrainingRecordsService.cs | 11 + SGGL/BLL/Common/Const.cs | 10 + .../CQMS/Comprehensive/TrainingRecords.aspx | 99 +++- .../Comprehensive/TrainingRecords.aspx.cs | 235 +++++++- .../TrainingRecords.aspx.designer.cs | 153 +++++ .../Comprehensive/TrainingRecordsDataIn.aspx | 167 ++++++ .../TrainingRecordsDataIn.aspx.cs | 521 ++++++++++++++++++ .../TrainingRecordsDataIn.aspx.designer.cs | 267 +++++++++ .../TrainingRecordsDataInEdit.aspx | 66 +++ .../TrainingRecordsDataInEdit.aspx.cs | 175 ++++++ ...TrainingRecordsDataInEdit.aspx.designer.cs | 150 +++++ .../Comprehensive/TrainingRecordsEdit.aspx | 62 +++ .../Comprehensive/TrainingRecordsEdit.aspx.cs | 118 ++++ .../TrainingRecordsEdit.aspx.designer.cs | 123 +++++ .../File/Excel/DataIn/培训记录导入模板.xlsx | Bin 0 -> 10425 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 24 + SGGL/FineUIPro.Web/common/Menu_CQMS.xml | 1 + SGGL/FineUIPro.Web/common/Menu_Personal.xml | 3 - SGGL/FineUIPro.Web/common/Menu_TestRun.xml | 13 +- SGGL/FineUIPro.Web/common/Menu_Transfer.xml | 18 - SGGL/FineUIPro.Web/common/Menu_ZHGL.xml | 4 - 21 files changed, 2181 insertions(+), 39 deletions(-) create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataIn/培训记录导入模板.xlsx diff --git a/SGGL/BLL/CQMS/Comprehensive/TrainingRecordsService.cs b/SGGL/BLL/CQMS/Comprehensive/TrainingRecordsService.cs index f9f008b1..5131de34 100644 --- a/SGGL/BLL/CQMS/Comprehensive/TrainingRecordsService.cs +++ b/SGGL/BLL/CQMS/Comprehensive/TrainingRecordsService.cs @@ -21,6 +21,17 @@ namespace BLL return Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(e => e.TrainingRecordsId == trainingRecordsId); } + /// + /// 根据培训内容、专业获取培训记录 + /// + /// + /// + /// + public static Model.Comprehensive_TrainingRecords GetTrainingRecordsByName(string trainingContents, string cNProfessionalId) + { + return Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(e => e.TrainingContents == trainingContents && e.CNProfessionalId == cNProfessionalId); + } + /// /// 添加培训记录 /// diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 6d133b12..ff6456f1 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3245,6 +3245,11 @@ namespace BLL /// 资料收发文登记记录导入模板原始虚拟路径 /// public const string CQMS_DataReceivingDocTempUrl = "File\\Excel\\DataIn\\资料收发文登记记录导入模板.xlsx"; + + /// + /// 培训记录导入模板原始虚拟路径 + /// + public const string CQMS_TrainingRecordsTemplateUrl= "File\\Excel\\DataIn\\培训记录导入模板.xlsx"; #endregion #region 绩效考核模板文件路径 @@ -3844,6 +3849,11 @@ namespace BLL /// public const string DesignDrawingsMenuId = "d8de4143-b680-44cf-9a78-acd3d49a8d00"; + /// + /// 培训记录 + /// + public const string TrainingRecordsMenuId = "CFD19410-DF80-494A-A2DD-D23A03438742"; + /// /// 图纸会审管理 /// diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx index 660d8410..4b7d336d 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx @@ -4,13 +4,106 @@ - + 培训记录
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs index ffd327a9..27eeb729 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs @@ -1,5 +1,8 @@ -using System; +using BLL; +using System; using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; @@ -7,11 +10,237 @@ using System.Web.UI.WebControls; namespace FineUIPro.Web.CQMS.Comprehensive { - public partial class TrainingRecords : System.Web.UI.Page + public partial class TrainingRecords : PageBase { + #region 加载 + /// + /// 加载页面 + /// + /// + /// protected void Page_Load(object sender, EventArgs e) { - + if (!IsPostBack) + { + GetButtonPower(); + BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true); + BindGrid(); + } } + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"SELECT C.TrainingRecordsId, + C.ProjectId, + C.TrainingContents, + C.CNProfessionalId, + C.TrainingObject, + C.TrainingAddress, + C.Hours, + C.KeynoteSpeaker, + C.Remark, + CN.ProfessionalName" + + @" FROM Comprehensive_TrainingRecords C " + + @" LEFT JOIN Base_CNProfessional CN ON C.CNProfessionalId=CN.CNProfessionalId" + + @" WHERE C.ProjectId = @ProjectId"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + if (drpCNProfessionalId.SelectedValue != BLL.Const._Null) + { + strSql += " AND C.CNProfessionalId=@CNProfessionalId"; + listStr.Add(new SqlParameter("@CNProfessionalId", drpCNProfessionalId.SelectedValue)); + } + if (!string.IsNullOrEmpty(this.txtTrainingContents.Text.Trim())) + { + strSql += " AND C.TrainingContents LIKE @TrainingContents"; + listStr.Add(new SqlParameter("@TrainingContents", "%" + this.txtTrainingContents.Text.Trim() + "%")); + } + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + //tb = GetFilteredTable(Grid1.FilteredData, tb); + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + #endregion + + #region 查询 + /// + /// 查询 + /// + /// + /// + protected void btnSearch_Click(object sender, EventArgs e) + { + BindGrid(); + } + #endregion + + #region 分页、排序 + /// + /// 分页下拉 + /// + /// + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + Grid1.SortDirection = e.SortDirection; + Grid1.SortField = e.SortField; + BindGrid(); + } + + /// + /// 分页 + /// + /// + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + BindGrid(); + } + #endregion + + #region 新增 + /// + /// 新增按钮事件 + /// + /// + /// + protected void btnNew_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsEdit.aspx", "编辑 - "))); + } + #endregion + + #region 编辑 + /// + /// 右键修改 + /// + /// + /// + protected void btnMenuModify_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsEdit.aspx?id={0}", Grid1.SelectedRowID, "编辑 - "))); + } + + /// + /// Grid行双击事件 + /// + /// + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + this.btnMenuModify_Click(sender, e); + } + #endregion + + #region 删除 + /// + /// 右键删除 + /// + /// + /// + protected void btnMenuDel_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length > 0) + { + foreach (int rowIndex in Grid1.SelectedRowIndexArray) + { + string rowID = Grid1.DataKeys[rowIndex][0].ToString(); + var trainingRecords = BLL.TrainingRecordsService.GetTrainingRecordsById(rowID); + if (trainingRecords != null) + { + BLL.TrainingRecordsService.DeleteTrainingRecordsById(rowID); + } + } + BindGrid(); + ShowNotify("删除数据成功!", MessageBoxIcon.Success); + } + } + #endregion + + #region 关闭弹出窗口 + /// + /// 关闭弹出窗口 + /// + /// + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + #endregion + + #region 导入 + /// + /// 导入按钮 + /// + /// + /// + protected void btnImport_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainingRecordsDataIn.aspx", "导入 - "))); + } + #endregion + + #region 获取按钮权限 + /// + /// 获取按钮权限 + /// + /// + /// + private void GetButtonPower() + { + if (Request.Params["value"] == BLL.Const._Null) + { + return; + } + var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TrainingRecordsMenuId); + if (buttonList.Count() > 0) + { + if (buttonList.Contains(BLL.Const.BtnAdd)) + { + this.btnNew.Hidden = false; + } + if (buttonList.Contains(BLL.Const.BtnModify)) + { + this.btnMenuModify.Hidden = false; + this.Grid1.EnableRowDoubleClickEvent = true; + } + else + { + this.Grid1.EnableRowDoubleClickEvent = false; + } + if (buttonList.Contains(BLL.Const.BtnDelete)) + { + this.btnMenuDel.Hidden = false; + } + if (buttonList.Contains(BLL.Const.BtnSave)) + { + this.btnImport.Hidden = false; + } + } + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs index ea703d60..52402bab 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs @@ -20,5 +20,158 @@ namespace FineUIPro.Web.CQMS.Comprehensive { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// ToolSearch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar ToolSearch; + + /// + /// drpCNProfessionalId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpCNProfessionalId; + + /// + /// txtTrainingContents 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTrainingContents; + + /// + /// btnSearch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSearch; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnNew; + + /// + /// btnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImport; + + /// + /// lblPageIndex 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblPageIndex; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Window2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window2; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuModify; + + /// + /// btnMenuDel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuDel; } } diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx new file mode 100644 index 00000000..b83bf5de --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx @@ -0,0 +1,167 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TrainingRecordsDataIn.aspx.cs" Inherits="FineUIPro.Web.CQMS.Comprehensive.TrainingRecordsDataIn" %> + + + + + + + 导入培训记录 + + + + +
+ + + + + + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.cs new file mode 100644 index 00000000..eb107868 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.cs @@ -0,0 +1,521 @@ +using BLL; +using Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.IO; +using System.Linq; +using System.Threading; + +namespace FineUIPro.Web.CQMS.Comprehensive +{ + public partial class TrainingRecordsDataIn : PageBase + { + #region 定义项 + /// + /// 上传预设的虚拟路径 + /// + private string initPath = Const.ExcelUrl; + + /// + /// 错误集合 + /// + public static string errorInfos = string.Empty; + + #endregion + + #region 加载 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + if (percent == null) + { + percent = new Dictionary(); + } + this.id.Text = this.CurrUser.UserId; + this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); + // 绑定表格 + this.BindGrid(); + } + else if (GetRequestEventArgument() == "reloadGrid") + { + BindGrid(); + } + } + #endregion + + #region 绑定数据 + /// + /// 绑定数据 + /// + private void BindGrid() + { + string strSql = @"SELECT TempId,ProjectId,UserId,Time,RowNo,ToopValue,Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9,Value10" + + @" ,Value11,Value12,Value13,Value14,Value15,Value16,Value17,Value18,Value19,Value20,Value21,Value22,Value23,Value24,Value25,Value26,Value27,Value28,Value29,Value30" + + @" ,Value31,Value32,Value33,Value34,Value35,Value36,Value37,Value38,Value39,Value40,Value41,Value42,Value43,Value44,Value45,Value46,Value47,Value48,Value49,Value50,ToopValue,Type" + + @" FROM Sys_DataInTemp " + + @" WHERE ProjectId=@ProjectId AND UserId=@UserId AND Type=@Type"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId)); + listStr.Add(new SqlParameter("@Type", "TrainingRecords"));//培训记录 + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + + var dataInTempAll = from x in Funs.DB.Sys_DataInTemp + where x.ProjectId == this.CurrUser.LoginProjectId && x.UserId == this.CurrUser.UserId && x.Type == "TrainingRecords" + select x; + for (int i = 0; i < Grid1.Rows.Count; i++) + { + var dataInTemp = dataInTempAll.FirstOrDefault(x => x.TempId == Grid1.Rows[i].DataKeys[0].ToString()); + if (dataInTemp != null) + { + if (!string.IsNullOrEmpty(dataInTemp.ToopValue)) + { + Grid1.Rows[i].RowCssClass = "red"; + } + } + } + var errData = from x in dataInTempAll where x.ToopValue != null select x; + this.lbDataCout.Text = errData.Count().ToString(); + } + #endregion + + #region 双击事件 + /// + /// Grid行双击事件 + /// + /// + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); + return; + } + if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.TrainingRecordsMenuId, Const.BtnSave)) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsDataInEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - "))); + } + else + { + ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); + } + } + #endregion + + #region 导入信息 维护 + /// + /// 导入信息编辑 + /// + /// + /// + protected void btnMenuEdit_Click(object sender, EventArgs e) + { + if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TrainingRecordsMenuId, BLL.Const.BtnSave)) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainingRecordsDataInEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - "))); + } + else + { + ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); + } + } + + /// + /// 删除按钮 + /// + /// + /// + protected void btnMenuDelete_Click(object sender, EventArgs e) + { + if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.TrainingRecordsMenuId, Const.BtnSave)) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); + return; + } + foreach (int rowIndex in Grid1.SelectedRowIndexArray) + { + string rowID = Grid1.DataKeys[rowIndex][0].ToString(); + BLL.Sys_DataTempService.DeleteDataInTempByDataInTempID(rowID); + } + ShowNotify("删除成功!", MessageBoxIcon.Success); + this.BindGrid(); + } + else + { + Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); + return; + } + } + #endregion + + #region 分页 排序 + /// + /// 分页 + /// + /// + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + BindGrid(); + } + + /// + /// 分页显示条数下拉框 + /// + /// + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) + { + BindGrid(); + } + #endregion + + #region 删除所有数据事件 + /// + /// 删除所有数据事件 + /// + /// + /// + protected void btnAllDelete_Click(object sender, EventArgs e) + { + if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.TrainingRecordsMenuId, Const.BtnSave)) + { + //先删除临时表中 该人员以前导入的数据 + BLL.Sys_DataTempService.DeleteDataInTempByProjectIdUserId(this.CurrUser.LoginProjectId, this.CurrUser.UserId, "TrainingRecords"); + this.BindGrid(); + ShowNotify("删除成功!", MessageBoxIcon.Success); + this.lbDataCout.Text = string.Empty; + } + else + { + Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); + return; + } + } + #endregion + + #region 下载模板 + /// + /// 下载模板 + /// + /// + /// + protected void imgbtnUpload_Click(object sender, EventArgs e) + { + this.TemplateUpload(BLL.Const.CQMS_TrainingRecordsTemplateUrl); + } + + protected void TemplateUpload(string initTemplatePath) + { + string rootPath = Server.MapPath("~/"); + string uploadfilepath = rootPath + initTemplatePath; + string filePath = Const.CQMS_TrainingRecordsTemplateUrl; + string fileName = Path.GetFileName(filePath); + FileInfo info = new FileInfo(uploadfilepath); + long fileSize = info.Length; + Response.ClearContent(); + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.ContentType = "excel/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.AddHeader("Content-Length", fileSize.ToString().Trim()); + Response.TransmitFile(uploadfilepath, 0, fileSize); + Response.End(); + } + + /// + /// 导入说明 + /// + /// + /// + //protected void lkAchievements_Click(object sender, EventArgs e) + //{ + // this.TemplateUpload(Const.CQMS_DataReceivingDocTempUrl); + //} + #endregion + + #region 进度条 + public static Dictionary percent { get; set; } + public static Dictionary url { get; set; } + + [System.Web.Services.WebMethod] + public static int getPercent(string id) + { + return percent[id]; + } + #endregion + + #region 文件上传 + /// + /// 文件上传 + /// + /// + /// + protected void imgbtnImport_Click(object sender, EventArgs e) + { + try + { + if (this.FileExcel.HasFile == false) + { + ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning); + return; + } + string IsXls = Path.GetExtension(this.FileExcel.FileName).ToString().Trim().ToLower(); + if (IsXls != ".xls" && IsXls != ".xlsx") + { + ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning); + return; + } + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + initPath; + if (!Directory.Exists(initFullPath)) + { + Directory.CreateDirectory(initFullPath); + } + //指定上传文件名称 + this.hdfileName.Text = BLL.Funs.GetNewFileName() + IsXls; + //上传文件路径 + string filePath = initFullPath + this.hdfileName.Text; + //文件上传服务器 + this.FileExcel.PostedFile.SaveAs(filePath); + //文件上传服务器后的名称 + string fileName = rootPath + initPath + this.hdfileName.Text; + //读取Excel + DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true); + //验证Excel读取是否有误 + if (!string.IsNullOrEmpty(errorInfos)) + { + ShowNotify(errorInfos, MessageBoxIcon.Warning); + return; + } + + if (ds.Tables.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + Sys_DataInTemp newDataInTemp = new Sys_DataInTemp(); + newDataInTemp.TempId = SQLHelper.GetNewID(typeof(Model.Sys_DataInTemp)); + newDataInTemp.ProjectId = this.CurrUser.LoginProjectId; + newDataInTemp.UserId = this.CurrUser.UserId; + newDataInTemp.Time = System.DateTime.Now; + newDataInTemp.Type = "TrainingRecords"; + newDataInTemp.RowNo = i + 2; + newDataInTemp.Value1 = ds.Tables[0].Rows[i]["培训内容"].ToString().Trim(); + newDataInTemp.Value2 = ds.Tables[0].Rows[i]["专业"].ToString().Trim(); + newDataInTemp.Value3 = ds.Tables[0].Rows[i]["培训对象"].ToString().Trim(); + newDataInTemp.Value4 = ds.Tables[0].Rows[i]["培训地点"].ToString().Trim(); + newDataInTemp.Value5 = ds.Tables[0].Rows[i]["课时(小时)"].ToString().Trim(); + newDataInTemp.Value6 = ds.Tables[0].Rows[i]["主讲人"].ToString().Trim(); + newDataInTemp.Value7 = ds.Tables[0].Rows[i]["备注"].ToString().Trim(); + + BLL.Sys_DataTempService.AddDataInTemp(newDataInTemp); + } + this.BindGrid(); + ShowNotify("数据已导入临时表!", MessageBoxIcon.Success); + } + else + { + ShowNotify("无数据!", MessageBoxIcon.Warning); + return; + } + } + catch (Exception ex) + { + Alert.ShowInTop("'" + ex.Message + "'", MessageBoxIcon.Warning); + } + } + #endregion + + #region 保存审核事件 + /// + /// 保存审核事件 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + Thread t = new Thread(new ThreadStart(() => { btnSaveMethod(this.CurrUser.LoginProjectId, this.CurrUser.UserId); })); + t.Start(); + if (percent.ContainsKey(this.CurrUser.UserId)) + { + percent[CurrUser.UserId] = 0; + } + else + { + percent.Add(CurrUser.UserId, 0); + } + PageContext.RegisterStartupScript("printX()"); + } + protected void btnRefresh_Click(object sender, EventArgs e) + { + this.BindGrid(); + } + + protected void btnSaveMethod(string LoginProjectId, string UserId) + { + var cNProfessionals = from x in Funs.DB.Base_CNProfessional select x;//专业 + + var dataInTemp = from x in Funs.DB.Sys_DataInTemp + where x.ProjectId == LoginProjectId && x.UserId == UserId && x.Type == "TrainingRecords" + select x; + int okCount = 0; + int i = 0; + int ir = dataInTemp.Count(); + string erreMessage = ""; + foreach (var tempData in dataInTemp) + { + if (tempData != null) + { + i++; + percent[UserId] = (int)(100 * i / ir); + string errInfo = string.Empty; + var isExitValue = Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TrainingContents == tempData.Value1 + && x.CNProfessionalId == tempData.Value2); + if (isExitValue == null || this.ckUpdate.Checked) + { + Model.Comprehensive_TrainingRecords newData = new Model.Comprehensive_TrainingRecords(); + if (!string.IsNullOrEmpty(tempData.Value1.Trim())) + { + newData.TrainingContents = tempData.Value1.Trim(); + } + else + { + errInfo += "培训内容为必填项;"; + } + + if (!string.IsNullOrEmpty(tempData.Value2.Trim())) + { + var professional = cNProfessionals.FirstOrDefault(e => e.ProfessionalName == tempData.Value2.Trim()); + if (professional != null) + { + newData.CNProfessionalId = professional.CNProfessionalId; + } + else + { + errInfo += "专业不存在;"; + } + } + else + { + errInfo += "专业为必填项;"; + } + if (!string.IsNullOrEmpty(tempData.Value3.Trim())) + { + newData.TrainingObject = tempData.Value3.Trim(); + } + else + { + errInfo += "培训对象为必填项;"; + } + if (!string.IsNullOrEmpty(tempData.Value4.Trim())) + { + newData.TrainingAddress = tempData.Value4.Trim(); + } + else + { + errInfo += "培训地点为必填项;"; + } + if (!string.IsNullOrEmpty(tempData.Value5.Trim())) + { + try + { + newData.Hours = Funs.GetNewDecimal(tempData.Value5.Trim()); + } + catch (Exception) + { + errInfo += "课时(小时)格式错误;"; + } + } + if (!string.IsNullOrEmpty(tempData.Value6.Trim())) + { + newData.KeynoteSpeaker = tempData.Value6.Trim(); + } + if (!string.IsNullOrEmpty(tempData.Value7.Trim())) + { + newData.Remark = tempData.Value7.Trim(); + } + if (string.IsNullOrEmpty(errInfo)) ////所有信息正确的话 这插入管线焊口 + { + newData.ProjectId = this.CurrUser.LoginProjectId; + + var data = BLL.TrainingRecordsService.GetTrainingRecordsByName(newData.TrainingContents, newData.CNProfessionalId); + if (data == null) + { + newData.TrainingRecordsId = SQLHelper.GetNewID(typeof(Model.Comprehensive_TrainingRecords)); + BLL.TrainingRecordsService.AddTrainingRecords(newData); + } + else + { + newData.TrainingRecordsId = data.TrainingRecordsId; + BLL.TrainingRecordsService.UpdateTrainingRecords(newData); + } + + BLL.Sys_DataTempService.DeleteDataInTempByDataInTempID(tempData.TempId); + okCount++; + } + } + else + { + errInfo = "该条记录已存在于培训记录表中。"; + } + + if (!string.IsNullOrEmpty(errInfo)) + { + tempData.ToopValue = errInfo; + BLL.Sys_DataTempService.UpdateDataInTemp(tempData); + erreMessage += errInfo + ";"; + } + } + } + } + #endregion + + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + Response.ClearContent(); + string filename = Funs.GetNewFileName(); + Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("培训记录导入模板" + filename, System.Text.Encoding.UTF8) + ".xlsx"); + Response.ContentType = "application/excel"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.Write(GetGridTableHtml(Grid1)); + Response.End(); + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.designer.cs new file mode 100644 index 00000000..e30ff7cd --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataIn.aspx.designer.cs @@ -0,0 +1,267 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.CQMS.Comprehensive { + + + public partial class TrainingRecordsDataIn { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// id 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField id; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// hdfileName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdfileName; + + /// + /// FileExcel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FileUpload FileExcel; + + /// + /// imgbtnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgbtnImport; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// ckUpdate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.CheckBox ckUpdate; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// btnRefresh 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnRefresh; + + /// + /// btnAllDelete 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAllDelete; + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + + /// + /// imgbtnUpload 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgbtnUpload; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// lblPageIndex 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblPageIndex; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// lbDataCout 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lbDataCout; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Window2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window2; + + /// + /// ContentPanel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel3; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuEdit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuEdit; + + /// + /// btnMenuDelete 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuDelete; + + /// + /// ScriptManager2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.ScriptManager ScriptManager2; + } +} diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx new file mode 100644 index 00000000..544fd18f --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx @@ -0,0 +1,66 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TrainingRecordsDataInEdit.aspx.cs" Inherits="FineUIPro.Web.CQMS.Comprehensive.TrainingRecordsDataInEdit" %> + + + + + + + 编辑培训记录导入 + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.cs new file mode 100644 index 00000000..bcbfbac4 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.cs @@ -0,0 +1,175 @@ +using BLL; +using System; +using System.Linq; + +namespace FineUIPro.Web.CQMS.Comprehensive +{ + public partial class TrainingRecordsDataInEdit : PageBase + { + #region 定义项 + /// + /// 临时表主键 + /// + public string TempId + { + get + { + return (string)ViewState["TempId"]; + } + set + { + ViewState["TempId"] = value; + } + } + #endregion + + #region 加载页面 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TempId = Request.Params["TempId"]; + this.txtValue1.Focus(); + var dataInTemp = BLL.Sys_DataTempService.GetDataInTempByTempId(this.TempId); + if (dataInTemp != null) + { + this.txtValue1.Text = dataInTemp.Value1; + this.txtValue2.Text = dataInTemp.Value2; + this.txtValue3.Text = dataInTemp.Value3; + this.txtValue4.Text = dataInTemp.Value4; + this.txtValue5.Text = dataInTemp.Value5; + this.txtValue6.Text = dataInTemp.Value6; + this.txtValue7.Text = dataInTemp.Value7; + + this.lbErrCout.Text = dataInTemp.ToopValue; + } + } + } + #endregion + + #region 保存按钮 + /// + /// 保存按钮 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + var dataInTemp = BLL.Sys_DataTempService.GetDataInTempByTempId(this.TempId); + if (this.ckAll.Checked) + { + var allDataInTemp = from x in Funs.DB.Sys_DataInTemp where x.ProjectId == this.CurrUser.LoginProjectId && x.UserId == this.CurrUser.UserId select x; + if (dataInTemp.Value1 != this.txtValue1.Text.Trim()) + { + var tempValue1 = allDataInTemp.Where(x => x.Value1 == dataInTemp.Value1 || (x.Value1 == null && dataInTemp.Value1 == null)); + if (tempValue1 != null) + { + foreach (var item in tempValue1) + { + item.Value1 = this.txtValue1.Text.Trim(); + Funs.DB.SubmitChanges(); + } + } + } + if (dataInTemp.Value2 != this.txtValue2.Text.Trim()) + { + var tempValue2 = allDataInTemp.Where(x => x.Value2 == dataInTemp.Value2 || (x.Value2 == null && dataInTemp.Value2 == null)); + if (tempValue2 != null) + { + foreach (var item in tempValue2) + { + item.Value2 = this.txtValue2.Text.Trim(); + Funs.DB.SubmitChanges(); + } + } + } + if (dataInTemp.Value3 != this.txtValue3.Text.Trim()) + { + var tempValue3 = allDataInTemp.Where(x => x.Value3 == dataInTemp.Value3 || (x.Value3 == null && dataInTemp.Value3 == null)); + if (tempValue3 != null) + { + foreach (var item in tempValue3) + { + item.Value3 = this.txtValue3.Text.Trim(); + Funs.DB.SubmitChanges(); + } + } + } + if (dataInTemp.Value5 != this.txtValue5.Text.Trim()) + { + var tempValue5 = allDataInTemp.Where(x => x.Value5 == dataInTemp.Value5 || (x.Value5 == null && dataInTemp.Value5 == null)); + if (tempValue5 != null) + { + foreach (var item in tempValue5) + { + item.Value5 = this.txtValue5.Text.Trim(); + Funs.DB.SubmitChanges(); + } + } + } + if (dataInTemp.Value6 != this.txtValue6.Text.Trim()) + { + var tempValue6 = allDataInTemp.Where(x => x.Value6 == dataInTemp.Value6 || (x.Value6 == null && dataInTemp.Value6 == null)); + if (tempValue6 != null) + { + foreach (var item in tempValue6) + { + item.Value6 = this.txtValue6.Text.Trim(); + Funs.DB.SubmitChanges(); + } + } + } + if (dataInTemp.Value7 != this.txtValue7.Text.Trim()) + { + var tempValue7 = allDataInTemp.Where(x => x.Value7 == dataInTemp.Value7 || (x.Value7 == null && dataInTemp.Value7 == null)); + if (tempValue7 != null) + { + foreach (var item in tempValue7) + { + item.Value7 = this.txtValue7.Text.Trim(); + Funs.DB.SubmitChanges(); + } + } + } + var toopValue = allDataInTemp.Where(x => x.ToopValue == dataInTemp.ToopValue); + if (toopValue != null) + { + foreach (var item in toopValue) + { + item.ToopValue = null; + Funs.DB.SubmitChanges(); + } + } + } + else + { + Model.Sys_DataInTemp newDataInTemp = new Model.Sys_DataInTemp(); + newDataInTemp.ProjectId = this.CurrUser.LoginProjectId; + newDataInTemp.UserId = this.CurrUser.UserId; + newDataInTemp.Time = System.DateTime.Now; + newDataInTemp.Type = dataInTemp.Type; + newDataInTemp.Value1 = this.txtValue1.Text.Trim(); + newDataInTemp.Value2 = this.txtValue2.Text.Trim(); + newDataInTemp.Value3 = this.txtValue3.Text.Trim(); + newDataInTemp.Value4 = this.txtValue4.Text.Trim(); + newDataInTemp.Value5 = this.txtValue5.Text.Trim(); + newDataInTemp.Value6 = this.txtValue6.Text.Trim(); + newDataInTemp.Value7 = this.txtValue7.Text.Trim(); + if (!string.IsNullOrEmpty(this.TempId)) + { + newDataInTemp.TempId = this.TempId; + newDataInTemp.ToopValue = null; + BLL.Sys_DataTempService.UpdateDataInTemp(newDataInTemp); + } + } + ShowNotify("信息修改完成!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.designer.cs new file mode 100644 index 00000000..61b04fe6 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsDataInEdit.aspx.designer.cs @@ -0,0 +1,150 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.CQMS.Comprehensive { + + + public partial class TrainingRecordsDataInEdit { + + /// + /// 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; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// txtValue1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue1; + + /// + /// txtValue2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue2; + + /// + /// txtValue3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue3; + + /// + /// txtValue4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue4; + + /// + /// txtValue5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue5; + + /// + /// txtValue6 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue6; + + /// + /// txtValue7 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtValue7; + + /// + /// ckAll 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.CheckBox ckAll; + + /// + /// lbErrCout 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea lbErrCout; + } +} diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx new file mode 100644 index 00000000..8218aa47 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx @@ -0,0 +1,62 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TrainingRecordsEdit.aspx.cs" Inherits="FineUIPro.Web.CQMS.Comprehensive.TrainingRecordsEdit" %> + + + + + + + 编辑培训记录 + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs new file mode 100644 index 00000000..ca55ca85 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs @@ -0,0 +1,118 @@ +using BLL; +using System; +using System.Linq; + +namespace FineUIPro.Web.CQMS.Comprehensive +{ + public partial class TrainingRecordsEdit : PageBase + { + #region 定义变量 + /// + /// 主键 + /// + public string TrainingRecordsId + { + get + { + return (string)ViewState["TrainingRecordsId"]; + } + set + { + ViewState["TrainingRecordsId"] = value; + } + } + #endregion + + #region 加载 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + GetButtonPower(); + BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true); + this.TrainingRecordsId = Request.Params["id"]; + Model.Comprehensive_TrainingRecords trainingRecords = BLL.TrainingRecordsService.GetTrainingRecordsById(this.TrainingRecordsId); + if (trainingRecords != null) + { + this.TrainingRecordsId = trainingRecords.TrainingRecordsId; + this.txtTrainingContents.Text = trainingRecords.TrainingContents; + if (!string.IsNullOrEmpty(trainingRecords.CNProfessionalId)) + { + this.drpCNProfessionalId.SelectedValue = trainingRecords.CNProfessionalId; + } + this.txtTrainingObject.Text = trainingRecords.TrainingObject; + this.txtTrainingAddress.Text = trainingRecords.TrainingAddress; + this.txtHours.Text = trainingRecords.Hours.HasValue ? trainingRecords.Hours.ToString() : ""; + this.txtKeynoteSpeaker.Text = trainingRecords.KeynoteSpeaker; + this.txtRemark.Text = trainingRecords.Remark; + } + } + } + #endregion + + #region 保存 + /// + /// 保存按钮 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (drpCNProfessionalId.SelectedValue == BLL.Const._Null) + { + Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); + return; + } + Model.Comprehensive_TrainingRecords trainingRecords = new Model.Comprehensive_TrainingRecords(); + trainingRecords.CNProfessionalId = this.drpCNProfessionalId.SelectedValue; + trainingRecords.TrainingContents = this.txtTrainingContents.Text.Trim(); + trainingRecords.TrainingObject = this.txtTrainingObject.Text.Trim(); + trainingRecords.TrainingAddress = this.txtTrainingAddress.Text.Trim(); + trainingRecords.Hours = Funs.GetNewDecimal(this.txtHours.Text.Trim()); + trainingRecords.KeynoteSpeaker = this.txtKeynoteSpeaker.Text.Trim(); + trainingRecords.Remark = this.txtRemark.Text.Trim(); + if (!string.IsNullOrEmpty(this.TrainingRecordsId)) + { + trainingRecords.TrainingRecordsId = this.TrainingRecordsId; + BLL.TrainingRecordsService.UpdateTrainingRecords(trainingRecords); + } + else + { + trainingRecords.TrainingRecordsId = SQLHelper.GetNewID(typeof(Model.Comprehensive_TrainingRecords)); + trainingRecords.ProjectId = this.CurrUser.LoginProjectId; + BLL.TrainingRecordsService.AddTrainingRecords(trainingRecords); + } + ShowNotify("保存成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + #endregion + + #region 获取按钮权限 + /// + /// 获取按钮权限 + /// + /// + /// + private void GetButtonPower() + { + if (Request.Params["value"] == "0") + { + return; + } + var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TrainingRecordsMenuId); + if (buttonList.Count() > 0) + { + if (buttonList.Contains(BLL.Const.BtnSave)) + { + this.btnSave.Hidden = false; + } + } + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.designer.cs new file mode 100644 index 00000000..0ea812a2 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.CQMS.Comprehensive { + + + public partial class TrainingRecordsEdit { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// txtTrainingContents 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTrainingContents; + + /// + /// drpCNProfessionalId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpCNProfessionalId; + + /// + /// txtTrainingObject 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTrainingObject; + + /// + /// txtTrainingAddress 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTrainingAddress; + + /// + /// txtHours 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtHours; + + /// + /// txtKeynoteSpeaker 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtKeynoteSpeaker; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtRemark; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + } +} diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/培训记录导入模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataIn/培训记录导入模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ed68bb54d37c4fe3667bcd3852c6fbbda04ea49f GIT binary patch literal 10425 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 + + + @@ -7729,6 +7732,27 @@ TrainingRecords.aspx + + TrainingRecordsDataIn.aspx + ASPXCodeBehind + + + TrainingRecordsDataIn.aspx + + + TrainingRecordsDataInEdit.aspx + ASPXCodeBehind + + + TrainingRecordsDataInEdit.aspx + + + TrainingRecordsEdit.aspx + ASPXCodeBehind + + + TrainingRecordsEdit.aspx + ConstructionStandardList.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/common/Menu_CQMS.xml b/SGGL/FineUIPro.Web/common/Menu_CQMS.xml index 1ebd1ff1..d66d477e 100644 --- a/SGGL/FineUIPro.Web/common/Menu_CQMS.xml +++ b/SGGL/FineUIPro.Web/common/Menu_CQMS.xml @@ -19,6 +19,7 @@ + diff --git a/SGGL/FineUIPro.Web/common/Menu_Personal.xml b/SGGL/FineUIPro.Web/common/Menu_Personal.xml index a9d07855..2854ffd9 100644 --- a/SGGL/FineUIPro.Web/common/Menu_Personal.xml +++ b/SGGL/FineUIPro.Web/common/Menu_Personal.xml @@ -6,7 +6,4 @@ - - - \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/Menu_TestRun.xml b/SGGL/FineUIPro.Web/common/Menu_TestRun.xml index 68f5e44c..b1a26ee1 100644 --- a/SGGL/FineUIPro.Web/common/Menu_TestRun.xml +++ b/SGGL/FineUIPro.Web/common/Menu_TestRun.xml @@ -46,12 +46,12 @@ - - - - + + + + @@ -69,11 +69,9 @@ - - @@ -121,8 +119,7 @@ - - + diff --git a/SGGL/FineUIPro.Web/common/Menu_Transfer.xml b/SGGL/FineUIPro.Web/common/Menu_Transfer.xml index 4d3b9e97..91d9fd84 100644 --- a/SGGL/FineUIPro.Web/common/Menu_Transfer.xml +++ b/SGGL/FineUIPro.Web/common/Menu_Transfer.xml @@ -1,21 +1,3 @@  - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml index 69859890..ed44c8fe 100644 --- a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml @@ -83,8 +83,4 @@ - - - - \ No newline at end of file