CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagementDataInNew.aspx.cs

624 lines
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.IO;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FineUIPro.Web.DataShow;
namespace FineUIPro.Web.CQMS.Comprehensive
{
public partial class NCRManagementDataInNew : PageBase
{
/// <summary>
/// 错误集合
/// </summary>
public static string errorInfos = string.Empty;
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (percent == null)
{
percent = new Dictionary<string, int>();
}
this.id.Text = this.CurrUser.UserId;
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
this.BindGrid();
}
else if (GetRequestEventArgument() == "reloadGrid")
{
BindGrid();
}
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
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"
+ @",ToopValue,Type"
+ @" FROM Sys_CQMS_DataInTemp "
+ @" WHERE ProjectId=@ProjectId AND UserId=@UserId AND Type=@Type";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId));
listStr.Add(new SqlParameter("@Type", "NCR"));
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_CQMS_DataInTemp
where x.ProjectId == this.CurrUser.LoginProjectId && x.UserId == this.CurrUser.UserId && x.Type == "NCR"
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
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("NCRManagementDataInNewEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - ")));
}
#endregion
#region
/// <summary>
/// 导入信息编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("NCRManagementDataInNewEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - ")));
}
/// <summary>
/// 删除按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
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_CQMS_DataInTempService.DeleteDataInTempByDataInTempID(rowID);
}
ShowNotify("删除成功!", MessageBoxIcon.Success);
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 文件上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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 + Const.ExcelUrl;
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 + Const.ExcelUrl + 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 = 1; i < ds.Tables[0].Rows.Count; i++)
{
Sys_CQMS_DataInTemp newDataInTemp = new Sys_CQMS_DataInTemp();
newDataInTemp.TempId = SQLHelper.GetNewID(typeof(Model.Sys_CQMS_DataInTemp));
newDataInTemp.ProjectId = this.CurrUser.LoginProjectId;
newDataInTemp.UserId = this.CurrUser.UserId;
newDataInTemp.Time = System.DateTime.Now;
newDataInTemp.Type = "NCR";
newDataInTemp.RowNo = i + 2;
newDataInTemp.Value1 = ds.Tables[0].Rows[i][0].ToString();
newDataInTemp.Value2 = ds.Tables[0].Rows[i][1].ToString();
newDataInTemp.Value3 = ds.Tables[0].Rows[i][2].ToString();
newDataInTemp.Value4 = ds.Tables[0].Rows[i][3].ToString();
newDataInTemp.Value5 = ds.Tables[0].Rows[i][4].ToString();
newDataInTemp.Value6 = ds.Tables[0].Rows[i][5].ToString();
newDataInTemp.Value7 = ds.Tables[0].Rows[i][6].ToString();
newDataInTemp.Value8 = ds.Tables[0].Rows[i][7].ToString();
newDataInTemp.Value9 = ds.Tables[0].Rows[i][8].ToString();
newDataInTemp.Value10 = ds.Tables[0].Rows[i][9].ToString();
newDataInTemp.Value11 = ds.Tables[0].Rows[i][10].ToString();
newDataInTemp.Value12 = ds.Tables[0].Rows[i][11].ToString();
newDataInTemp.Value13 = ds.Tables[0].Rows[i][12].ToString();
newDataInTemp.Value14 = ds.Tables[0].Rows[i][13].ToString();
newDataInTemp.Value15 = ds.Tables[0].Rows[i][14].ToString();
BLL.Sys_CQMS_DataInTempService.AddDataInTemp(newDataInTemp);
}
this.BindGrid();
ShowNotify("数据已导入临时表!", MessageBoxIcon.Success);
}
else
{
Alert.ShowInTop("导入数据为空!", MessageBoxIcon.Success);
return;
}
}
catch (Exception ex)
{
Alert.ShowInTop("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
Response.ClearContent();
string filename = Funs.GetNewFileName();
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("NCR管理" + filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write(GetGridTableHtml(Grid1));
Response.End();
}
#endregion
#region
/// <summary>
/// 保存审核事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(() => { btnSaveMethod(this.CurrUser.LoginProjectId, this.CurrUser.UserId, "NCR"); }));
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, string IsPDMS)
{
var oldViewInfos = from x in Funs.DB.Comprehensive_NCRManagement
where x.ProjectId == this.CurrUser.LoginProjectId
select x;
var units = from x in Funs.DB.Base_Unit
join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId
where y.ProjectId == this.CurrUser.LoginProjectId
select x;
var cns = from x in Funs.DB.Base_CNProfessional select x;
var unitWorks = from x in Funs.DB.WBS_UnitWork
where x.ProjectId == this.CurrUser.LoginProjectId
&& (x.SuperUnitWork == null || x.SuperUnitWork == "0")
select x;
var users = from x in Funs.DB.Project_ProjectUser
join y in Funs.DB.Sys_User on x.UserId equals y.UserId
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.UnitId == BLL.Const.UnitId_CWCEC
select y;
var dataInTemp = from x in Funs.DB.Sys_CQMS_DataInTemp
where x.ProjectId == LoginProjectId && x.UserId == UserId && x.Type == "NCR"
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;
Model.Comprehensive_NCRManagement Ins = new Model.Comprehensive_NCRManagement();
if (!string.IsNullOrEmpty(tempData.Value1))
{
var unit = units.FirstOrDefault(x => x.UnitName == tempData.Value1);
if (unit == null)
{
errInfo += "发出单位[" + tempData.Value1 + "]不存在;";
}
else
{
Ins.SendUnit = unit.UnitId;
}
}
else
{
errInfo += "发出单位为必填项;";
}
if (!string.IsNullOrEmpty(tempData.Value2))
{
var cn = cns.Where(x => x.ProfessionalName == tempData.Value2).FirstOrDefault();
if (cn == null)
{
errInfo += "专业名称[" + tempData.Value2 + "]不存在;";
}
else
{
Ins.CNProfessionalId = cn.CNProfessionalId;
}
}
else
{
errInfo += "专业名称为必填项;";
}
if (!string.IsNullOrEmpty(tempData.Value3))
{
Ins.NCRCode = tempData.Value3;
}
else
{
errInfo += "NCR单号为必填项";
}
if (!string.IsNullOrEmpty(tempData.Value4))
{
string unitIds = string.Empty;
string[] reunit = tempData.Value4.Split(',');
foreach (string unitWork in reunit)
{
var u = unitWorks.Where(x => x.UnitWorkName == unitWork.Trim()).FirstOrDefault();
if (u == null)
{
errInfo += "单位工程名称[" + unitWork.Trim() + "]不存在;";
}
else
{
var q = BLL.UnitWorkService.GetUnitWorkByUnitWorkName(this.CurrUser.LoginProjectId, unitWork.Trim()).UnitWorkId;
unitIds += q + ",";
}
}
if (!string.IsNullOrEmpty(unitIds))
{
unitIds = unitIds.Substring(0, unitIds.LastIndexOf(","));
}
Ins.UnitWorkId = unitIds;
}
if (!string.IsNullOrEmpty(tempData.Value5))//主要内容
{
Ins.Contents = tempData.Value5;
}
if (!string.IsNullOrEmpty(tempData.Value6.Trim()))
{
if (tempData.Value6.Trim() != "过程监督不到位" && tempData.Value6.Trim() != "质量缺陷" && tempData.Value6.Trim() != "质量管理问题" && tempData.Value6.Trim() != "不按设计要求施工" && tempData.Value6.Trim() != "不按程序施工" && tempData.Value6.Trim() != "成品保护不到位")
{
errInfo += "问题类别[" + tempData.Value6.Trim() + "]错误;";
}
else
{
Ins.Problem = tempData.Value6.Trim();
}
}
if (!string.IsNullOrEmpty(tempData.Value7.Trim()))//改进措施
{
Ins.Measure = tempData.Value7.Trim();
}
if (!string.IsNullOrEmpty(tempData.Value8.Trim()))
{
try
{
Ins.IssuedDate = Funs.GetNewDateTime(tempData.Value8.Trim());
if (Ins.IssuedDate == null)
{
errInfo += "下发日期[" + tempData.Value8.Trim() + "]错误;";
}
}
catch (Exception)
{
errInfo += "下发日期[" + tempData.Value8.Trim() + "]错误;";
}
}
if (!string.IsNullOrEmpty(tempData.Value9.Trim()))
{
string unitIds = string.Empty;
string[] reunit = tempData.Value9.Split(',');
foreach (string unitName in reunit)
{
var u = units.Where(x => x.UnitName == unitName.Trim()).FirstOrDefault();
if (u == null)
{
errInfo += "接收单位[" + unitName.Trim() + "]不存在;";
}
else
{
unitIds += u.UnitId + ",";
}
}
if (!string.IsNullOrEmpty(unitIds))
{
unitIds = unitIds.Substring(0, unitIds.LastIndexOf(","));
}
Ins.ReceiveUnit = unitIds;
}
if (!string.IsNullOrEmpty(tempData.Value10.Trim()))
{
if (tempData.Value10.Trim() != "整改中" && tempData.Value10.Trim() != "已闭合")
{
errInfo += "实时状态[" + tempData.Value10.Trim() + "]错误;";
}
else
{
Ins.ImplementationFrontState = tempData.Value10.Trim();
}
}
if (!string.IsNullOrEmpty(tempData.Value11))
{
try
{
Ins.ClosedDate = Funs.GetNewDateTime(tempData.Value11);
if (Ins.ClosedDate == null)
{
errInfo += "要求关闭日期[" + tempData.Value11.Trim() + "]错误;";
}
}
catch (Exception)
{
errInfo += "要求关闭日期[" + tempData.Value11.Trim() + "]错误;";
}
}
if (!string.IsNullOrEmpty(tempData.Value12))
{
try
{
Ins.CompleteDate = Funs.GetNewDateTime(tempData.Value12);
if (Ins.CompleteDate == null)
{
errInfo += "完成日期[" + tempData.Value12.Trim() + "]错误;";
}
}
catch (Exception)
{
errInfo += "完成日期[" + tempData.Value12.Trim() + "]错误;";
}
}
if (!string.IsNullOrEmpty(tempData.Value13.Trim()))//责任人
{
Ins.ResponsibleMan = tempData.Value13.Trim();
}
if (!string.IsNullOrEmpty(tempData.Value14.Trim()))//监督人
{
var user = users.FirstOrDefault(x => x.UserName == tempData.Value14.Trim());
if (user != null)
{
Ins.Supervisor = user.UserId;
}
else
{
errInfo += "监督人[" + tempData.Value14.Trim() + "]错误;";
}
}
if (!string.IsNullOrEmpty(tempData.Value15))
{
try
{
Ins.RemarkCode = Convert.ToInt32(tempData.Value15);
}
catch (Exception)
{
errInfo += "标志编号[" + tempData.Value15 + "]格式错误;";
}
}
else
{
errInfo += "标志编号为必填项;";
}
if (string.IsNullOrEmpty(errInfo)) ////所有信息正确的话 插入数据
{
Ins.ProjectId = LoginProjectId;
Ins.Status = BLL.Const.Comprehensive_Compile;
Ins.CompileMan = this.CurrUser.UserId;
var isExitISOValue = oldViewInfos.FirstOrDefault(x => x.RemarkCode == Funs.GetNewIntOrZero(tempData.Value15));
if (isExitISOValue != null) ///已存在
{
Ins.NCRManagementId = isExitISOValue.NCRManagementId;
BLL.NCRManagementService.UpdateNCRManagement(Ins);
}
else
{
Ins.NCRManagementId = SQLHelper.GetNewID(typeof(Model.Comprehensive_NCRManagement));
BLL.NCRManagementService.AddNCRManagement(Ins);
}
BLL.Sys_CQMS_DataInTempService.DeleteDataInTempByDataInTempID(tempData.TempId);
okCount++;
}
if (!string.IsNullOrEmpty(errInfo))
{
tempData.ToopValue = errInfo;
BLL.Sys_CQMS_DataInTempService.UpdateDataInTemp(tempData);
erreMessage += errInfo + ";";
}
}
}
}
#endregion
#region
/// <summary>
/// 删除所有数据事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAllDelete_Click(object sender, EventArgs e)
{
//先删除临时表中 该人员以前导入的数据
BLL.Sys_CQMS_DataInTempService.DeleteDataInTempByProjectIdUserId(this.CurrUser.LoginProjectId, this.CurrUser.UserId, "NCR");
this.BindGrid();
ShowNotify("删除成功!", MessageBoxIcon.Success);
this.lbDataCout.Text = string.Empty;
}
#endregion
#region
/// <summary>
/// 下载模版
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void imgbtnUpload_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.NCRManagementDataInUrl;
string filePath = Const.NCRManagementDataInUrl;
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();
}
#endregion
public static Dictionary<string, int> percent { get; set; }
public static Dictionary<string, string> url { get; set; }
[System.Web.Services.WebMethod]
public static int getPercent(string id)
{
return percent[id];
}
}
}