xinjiang/SGGL/FineUIPro.Web/CQMS/Check/EditJointCheckTwo.aspx.cs

640 lines
29 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.Check
{
public partial class EditJointCheckTwo : PageBase
{
/// <summary>
/// 主键
/// </summary>
public string JointCheckId
{
get
{
return (string)ViewState["JointCheckId"];
}
set
{
ViewState["JointCheckId"] = value;
}
}
/// <summary>
/// 图片处理
/// </summary>
public int ImgId
{
get
{
return (int)ViewState["ImgId"];
}
set
{
ViewState["ImgId"] = value;
}
}
/// <summary>
/// 明细集合
/// </summary>
private static List<Model.Check_JointCheckDetail> jointCheckDetails = new List<Model.Check_JointCheckDetail>();
/// <summary>
/// 办理类型
/// </summary>
public string State
{
get
{
return (string)ViewState["State"];
}
set
{
ViewState["State"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
//绑定表格---表单
if (!IsPostBack)
{
UnitService.InitUnitByProjectIdUnitTypeDropDownList(drpUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
UnitService.InitUnitNotsub(drpProposeUnit, CurrUser.LoginProjectId, false);
JointCheckService.Init(drpCheckType, true);
txtProjectName.Text = ProjectService.GetProjectByProjectId(CurrUser.LoginProjectId).ProjectName;
JointCheckId = Request.Params["JointCheckId"];
if (!string.IsNullOrEmpty(JointCheckId))
{
Model.Check_JointCheck jointCheck = BLL.JointCheckService.GetJointCheck(JointCheckId);
txtJointCheckCode.Text = jointCheck.JointCheckCode;
if (!string.IsNullOrEmpty(jointCheck.UnitId))
{
drpUnit.SelectedValue = jointCheck.UnitId;
}
if (!string.IsNullOrEmpty(jointCheck.ProposeUnitId))
{
drpProposeUnit.SelectedValue = jointCheck.ProposeUnitId;
}
if (!string.IsNullOrEmpty(jointCheck.CheckType))
{
drpCheckType.SelectedValue = jointCheck.CheckType;
}
if (jointCheck.CheckDate != null)
{
txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", jointCheck.CheckDate);
}
txtCheckName.Text = jointCheck.CheckName;
if (!string.IsNullOrEmpty(jointCheck.JointCheckMans1))
{
this.txtJointCheckMans1.Text = BLL.UserService.getUserNamesUserIds(jointCheck.JointCheckMans1);
}
if (!string.IsNullOrEmpty(jointCheck.JointCheckMans2))
{
this.txtJointCheckMans2.Text = BLL.UserService.getUserNamesUserIds(jointCheck.JointCheckMans2);
}
if (!string.IsNullOrEmpty(jointCheck.JointCheckMans3))
{
this.txtJointCheckMans3.Text = BLL.UserService.getUserNamesUserIds(jointCheck.JointCheckMans3);
}
if (!string.IsNullOrEmpty(jointCheck.JointCheckMans4))
{
this.txtJointCheckMans4.Text = BLL.UserService.getUserNamesUserIds(jointCheck.JointCheckMans4);
}
if (!string.IsNullOrEmpty(jointCheck.State))
{
State = jointCheck.State;
}
else
{
State = BLL.Const.JointCheck_Compile;
}
jointCheckDetails.Clear();
ImgId = 0;
BindData();
}
}
}
private void BindData()
{
jointCheckDetails = JointCheckDetailService.GetLists(JointCheckId);
var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId);
var cNProfessionals = BLL.CNProfessionalService.GetCNProfessionalItem();
var questionTypes = BLL.QualityQuestionTypeService.GetQualityQuestionTypeItem();
var users = BLL.UserService.GetProjectUserListByProjectId(CurrUser.LoginProjectId);
if (jointCheckDetails.Count > 0)
{
for (int i = 0; i < jointCheckDetails.Count; i++)
{
var cn = cNProfessionals.FirstOrDefault(x => x.Value == jointCheckDetails[i].CNProfessionalCode);
if (cn != null)
{
jointCheckDetails[i].CNProfessionalCode = cn.Text;
}
var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == jointCheckDetails[i].UnitWorkId);
if (unitWork != null)
{
jointCheckDetails[i].UnitWorkId = unitWork.UnitWorkName + BLL.UnitWorkService.GetProjectType(unitWork.ProjectType);
}
var questionType = questionTypes.FirstOrDefault(x => x.Value == jointCheckDetails[i].QuestionType);
if (questionType != null)
{
jointCheckDetails[i].QuestionType = questionType.Text;
}
}
}
Grid1.DataSource = jointCheckDetails;
Grid1.DataBind();
if (Grid1.Rows.Count > 0)
{
foreach (JObject mergedRow in Grid1.GetMergedData())
{
int i = mergedRow.Value<int>("index");
GridRow row = Grid1.Rows[i];
JObject values = mergedRow.Value<JObject>("values");
System.Web.UI.WebControls.DropDownList handtype = (System.Web.UI.WebControls.DropDownList)(row.FindControl("drpHandleType"));
System.Web.UI.WebControls.DropDownList handman = (System.Web.UI.WebControls.DropDownList)(row.FindControl("drpHandleMan"));
System.Web.UI.WebControls.HiddenField lblHandleMan = (System.Web.UI.WebControls.HiddenField)(row.FindControl("hdHandleMan"));
System.Web.UI.WebControls.HiddenField lblsite = (System.Web.UI.WebControls.HiddenField)(row.FindControl("hdState"));
handtype.Items.AddRange(JointCheckService.GetDHandleTypeByState(lblsite.Value));
//System.Web.UI.WebControls.TextBox handleWays = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtHandleWay"));
//System.Web.UI.WebControls.TextBox rectifyDate = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtRectifyDate"));
if (!handtype.SelectedValue.Equals(Const.JointCheck_Complete))
{
if (handtype.SelectedValue.Equals(Const.JointCheck_Audit3) || handtype.SelectedValue.Equals(Const.JointCheck_Audit4))
{
handman.Items.AddRange(UserService.GetMainUserList(CurrUser.LoginProjectId));
}
else
{
handman.Items.AddRange(UserService.GetUserByUnitId(CurrUser.LoginProjectId, drpUnit.SelectedValue));
}
}
Funs.PleaseSelect(handman);
if (lblHandleMan.Value != CurrUser.UserId)
{
foreach (GridColumn column in Grid1.AllColumns)
{
Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable";
}
handtype.Enabled = false;
handman.Enabled = false;
}
else
{
//handleWays.ReadOnly = false;
//rectifyDate.Enabled = true;
handtype.Enabled = true;
handman.Enabled = true;
if (handtype.SelectedValue == Const.JointCheck_Complete)
{
handman.Enabled = false;
}
}
if (lblsite.Value.Equals(Const.JointCheck_Audit3) || lblsite.Value.Equals(Const.JointCheck_Audit4))
{
foreach (GridColumn column in Grid1.AllColumns)
{
Grid1.Rows[i].CellCssClasses[11] = "f-grid-cell-uneditable";
Grid1.Rows[i].CellCssClasses[12] = "f-grid-cell-uneditable";
}
ImgId = -1;
}
}
//setHandelMan();
}
var list = JointCheckApproveService.getListData(JointCheckId);
gvApprove.DataSource = list;
gvApprove.DataBind();
}
/// <summary>
/// 把状态转换代号为文字形式
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected string ConvertState(object state)
{
if (state != null)
{
if (state.ToString() == BLL.Const.JointCheck_ReCompile)
{
return "重新编制";
}
else if (state.ToString() == BLL.Const.JointCheck_Compile)
{
return "编制";
}
else if (state.ToString() == BLL.Const.JointCheck_Audit1)
{
return "分包专工回复";
}
else if (state.ToString() == BLL.Const.JointCheck_Audit2)
{
return "分包负责人审批";
}
else if (state.ToString() == BLL.Const.JointCheck_Audit3)
{
return "总包专工回复";
}
else if (state.ToString() == BLL.Const.JointCheck_Audit4)
{
return "总包负责人审批";
}
else if (state.ToString() == BLL.Const.JointCheck_Complete)
{
return "审批完成";
}
else if (state.ToString() == BLL.Const.JointCheck_Z)
{
return "整改中";
}
else if (state.ToString() == BLL.Const.JointCheck_Audit1R)
{
return "分包专工重新回复";
}
else
{
return "";
}
}
return "";
}
protected void drpHandleType_SelectedIndexChanged(object sender, EventArgs e)
{
System.Web.UI.WebControls.DropDownList handleType = sender as System.Web.UI.WebControls.DropDownList;
foreach (JObject mergedRow in Grid1.GetMergedData())
{
int i = mergedRow.Value<int>("index");
JObject values = mergedRow.Value<JObject>("values");
string handleWay = values.Value<string>("HandleWay");
AspNet.TextBox RectifyDate = (AspNet.TextBox)Grid1.Rows[i].FindControl("RectifyDate");
string id = this.Grid1.Rows[i].RowID;
var detail = jointCheckDetails.FirstOrDefault(x => x.JointCheckDetailId == id);
detail.HandleWay = handleWay;
if (!string.IsNullOrWhiteSpace(RectifyDate.Text.Trim()))
{
detail.RectifyDate = Convert.ToDateTime(RectifyDate.Text.Trim());
}
System.Web.UI.WebControls.DropDownList handleType1 = (System.Web.UI.WebControls.DropDownList)(Grid1.Rows[i].FindControl("drpHandleType"));
if (handleType.ClientID == handleType1.ClientID)
{
detail.State = handleType.SelectedValue;
}
}
BindData2();
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (validate())
{
SaveJointCheck("save");
}
}
/// <summary>
/// 检查并保存集合
/// </summary>
private void jerqueSaveList()
{
jointCheckDetails.Clear();
foreach (JObject mergedRow in Grid1.GetMergedData())
{
int i = mergedRow.Value<int>("index");
JObject values = mergedRow.Value<JObject>("values");
string jointCheckDetailId = values.Value<string>("JointCheckDetailId");
//System.Web.UI.WebControls.TextBox thandleWay = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtHandleWay"));
//System.Web.UI.WebControls.TextBox trectifyDate = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtRectifyDate"));
System.Web.UI.WebControls.HiddenField lblHandleMan = (System.Web.UI.WebControls.HiddenField)(Grid1.Rows[i].FindControl("hdHandleMan"));
AspNet.TextBox RectifyDate = (AspNet.TextBox)Grid1.Rows[i].FindControl("RectifyDate");
string handleWay = values.Value<string>("HandleWay");
string state = ((System.Web.UI.WebControls.DropDownList)Grid1.Rows[i].FindControl("drpHandleType")).SelectedValue;
string handleMan = ((System.Web.UI.WebControls.DropDownList)Grid1.Rows[i].FindControl("drpHandleMan")).SelectedValue;
Model.Check_JointCheckDetail jointCheckDetail = JointCheckDetailService.GetJointCheckDetailByJointCheckDetailId(jointCheckDetailId);
jointCheckDetail.JointCheckDetailId = jointCheckDetailId;
jointCheckDetail.JointCheckId = JointCheckId;
jointCheckDetail.HandleWay = handleWay;
if (!string.IsNullOrEmpty(RectifyDate.Text.Trim()))
{
jointCheckDetail.RectifyDate = Convert.ToDateTime(RectifyDate.Text.Trim());
}
if (handleMan == "0" && state != Const.JointCheck_Complete) //非审批完成步骤,未选择办理人,不更新办理状态
{
var oldDetail = BLL.JointCheckDetailService.GetJointCheckDetailByJointCheckDetailId(jointCheckDetailId);
if (oldDetail != null)
{
jointCheckDetail.State = oldDetail.State;
jointCheckDetail.HandleMan = oldDetail.HandleMan;
}
}
else
{
jointCheckDetail.State = state;
jointCheckDetail.HandleMan = handleMan;
}
jointCheckDetails.Add(jointCheckDetail);
}
}
/// <summary>
/// 保存质量不合格整改通知单
/// </summary>
private void SaveJointCheck(string saveType)
{
if (!string.IsNullOrEmpty(JointCheckId))
{
if (saveType == "submit")
{
foreach (JObject mergedRow in Grid1.GetMergedData())
{
//先更新明细再添加审批信息
int i = mergedRow.Value<int>("index");
JObject values = mergedRow.Value<JObject>("values");
GridRow row = Grid1.Rows[i];
string state = values.Value<string>("HandleType");
string jointCheckDetailId = values.Value<string>("JointCheckDetailId");
string handleWay = values.Value<string>("HandleWay");
var man = (System.Web.UI.WebControls.DropDownList)Grid1.Rows[i].FindControl("drpHandleMan");
var type = (System.Web.UI.WebControls.DropDownList)Grid1.Rows[i].FindControl("drpHandleType");
var rectifyDate = (System.Web.UI.WebControls.TextBox)Grid1.Rows[i].FindControl("RectifyDate");
var handleMan = (System.Web.UI.WebControls.HiddenField)Grid1.Rows[i].FindControl("hdHandleMan");
if (handleMan.Value == CurrUser.UserId)
{
Model.Check_JointCheckDetail spdetail = JointCheckDetailService.GetJointCheckDetailByJointCheckDetailId(jointCheckDetailId);
spdetail.HandleWay = handleWay;
if (rectifyDate.Text != null)
{
spdetail.RectifyDate = Convert.ToDateTime(rectifyDate.Text);
}
if (type.SelectedValue == Const.JointCheck_Complete)
{
spdetail.State = type.SelectedValue;
spdetail.HandleMan = string.Empty;
JointCheckDetailService.UpdateJointCheckDetail(spdetail);
if (saveType == "submit")
{
var appro = JointCheckApproveService.GetJointCheckApproveByJointCheckDetailId(jointCheckDetailId, CurrUser.UserId);
if (appro != null && saveType == "submit")
{
appro.ApproveDate = DateTime.Now;
appro.ApproveIdea = txtOpinions.Text.Trim();
JointCheckApproveService.UpdateJointCheckApprove(appro);
}
}
}
else
{
if (saveType == "submit")
{
if (man.SelectedValue != "0")
{
spdetail.State = type.SelectedValue;
spdetail.HandleMan = man.SelectedValue;
JointCheckDetailService.UpdateJointCheckDetail(spdetail);
var appro = JointCheckApproveService.GetJointCheckApproveByJointCheckDetailId(row.RowID, CurrUser.UserId);
if (appro != null && saveType == "submit")
{
appro.ApproveDate = DateTime.Now;
appro.ApproveIdea = txtOpinions.Text.Trim();
JointCheckApproveService.UpdateJointCheckApprove(appro);
}
Model.Check_JointCheckApprove approve = new Model.Check_JointCheckApprove();
approve.JointCheckId = JointCheckId;
approve.ApproveMan = man.SelectedValue;
approve.ApproveType = type.SelectedValue;
approve.JointCheckDetailId = jointCheckDetailId;
JointCheckApproveService.AddJointCheckApprove(approve);
APICommonService.SendSubscribeMessage(approve.ApproveMan, "质量共检问题待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
}
}
}
}
}
}
}
var joinCheck = JointCheckService.GetJointCheck(JointCheckId);
//循环判断明细是否都是已经完成是则处理主表状态已完成
var details = JointCheckDetailService.GetLists(JointCheckId);
if (details.Count > 0)
{
var stat = true;
foreach (var item in details)
{
if (item.State != Const.JointCheck_Complete)
{
stat = false;
break;
}
}
if (stat)
{
joinCheck.State = Const.JointCheck_Complete;
JointCheckService.UpdateJointCheck(joinCheck);
}
}
LogService.AddSys_Log(this.CurrUser, joinCheck.JointCheckCode, JointCheckId, Const.JointCheckMenuId, "质量共检");
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
private Boolean validate()
{
string err = string.Empty;
foreach (JObject mergedRow in Grid1.GetMergedData())
{
int i = mergedRow.Value<int>("index");
JObject values = mergedRow.Value<JObject>("values");
string HandleWay = values.Value<string>("HandleWay");
AspNet.TextBox RectifyDate = (AspNet.TextBox)Grid1.Rows[i].FindControl("RectifyDate");
//System.Web.UI.WebControls.TextBox thandleWay = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtHandleWay"));
//System.Web.UI.WebControls.TextBox trectifyDate = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtRectifyDate"));
//if (thandleWay.Enabled && trectifyDate.Enabled)
//{
System.Web.UI.WebControls.HiddenField lblHandleMan = (System.Web.UI.WebControls.HiddenField)(Grid1.Rows[i].FindControl("hdHandleMan"));
if (lblHandleMan.Value == CurrUser.UserId)//如果不是此用户的记录
{
if (string.IsNullOrEmpty(HandleWay.Trim()) || string.IsNullOrEmpty(RectifyDate.Text.Trim()))
{
err += "第" + (i + 1).ToString() + "行:";
if (string.IsNullOrEmpty(HandleWay.Trim()))
{
err += "请输入整改方案,";
}
if (string.IsNullOrEmpty(RectifyDate.Text.Trim()))
{
err += "请输入实际整改时间,";
}
}
}
}
if (!string.IsNullOrEmpty(err))
{
err = err.Substring(0, err.LastIndexOf(","));
err += "!";
PageContext.RegisterStartupScript("alert('" + err + "');");
return false;
}
else
{
return true;
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (validate())
{
SaveJointCheck("submit");
}
}
private void BindData2()
{
Grid1.DataSource = jointCheckDetails;
Grid1.DataBind();
if (Grid1.Rows.Count > 0)
{
foreach (JObject mergedRow in Grid1.GetMergedData())
{
int i = mergedRow.Value<int>("index");
GridRow row = Grid1.Rows[i];
JObject values = mergedRow.Value<JObject>("values");
System.Web.UI.WebControls.DropDownList handtype = (System.Web.UI.WebControls.DropDownList)(row.FindControl("drpHandleType"));
System.Web.UI.WebControls.DropDownList handman = (System.Web.UI.WebControls.DropDownList)(row.FindControl("drpHandleMan"));
System.Web.UI.WebControls.HiddenField lblHandleMan = (System.Web.UI.WebControls.HiddenField)(row.FindControl("hdHandleMan"));
System.Web.UI.WebControls.HiddenField lblsite = (System.Web.UI.WebControls.HiddenField)(row.FindControl("hdState"));
Model.Check_JointCheckDetail detail = JointCheckDetailService.GetJointCheckDetailByJointCheckDetailId(Grid1.Rows[i].RowID);
handtype.Items.AddRange(JointCheckService.GetDHandleTypeByState(detail.State));
if (lblsite.Value != detail.State)
{
handtype.SelectedValue = lblsite.Value;
}
//System.Web.UI.WebControls.TextBox handleWays = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtHandleWay"));
//System.Web.UI.WebControls.TextBox rectifyDate = (System.Web.UI.WebControls.TextBox)(Grid1.Rows[i].FindControl("txtRectifyDate"));
if (!handtype.SelectedValue.Equals(Const.JointCheck_Complete))
{
if (handtype.SelectedValue.Equals(Const.JointCheck_Audit3) || handtype.SelectedValue.Equals(Const.JointCheck_Audit4))
{
handman.Items.AddRange(UserService.GetMainUserList(CurrUser.LoginProjectId));
}
else
{
handman.Items.AddRange(UserService.GetUserByUnitId(CurrUser.LoginProjectId, drpUnit.SelectedValue));
}
}
Funs.PleaseSelect(handman);
if (lblHandleMan.Value != CurrUser.UserId)
{
foreach (GridColumn column in Grid1.AllColumns)
{
this.Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable";
}
//handleWays.ReadOnly = true;
//rectifyDate.Enabled = false;
handtype.Enabled = false;
handman.Enabled = false;
}
else
{
//handleWays.ReadOnly = false;
//rectifyDate.Enabled = true;
handtype.Enabled = true;
handman.Enabled = true;
if (handtype.SelectedValue == Const.JointCheck_Complete)
{
handman.Enabled = false;
}
}
if (detail.State.Equals(Const.JointCheck_Audit3) || detail.State.Equals(Const.JointCheck_Audit4))
{
foreach (GridColumn column in Grid1.AllColumns)
{
Grid1.Rows[i].CellCssClasses[11] = "f-grid-cell-uneditable";
Grid1.Rows[i].CellCssClasses[12] = "f-grid-cell-uneditable";
}
ImgId = -1;
}
}
//setHandelMan();
}
}
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
string itemId = Grid1.DataKeys[e.RowIndex][0].ToString();
var detail = jointCheckDetails.FirstOrDefault(x => x.JointCheckDetailId == itemId);
if (detail.HandleMan == CurrUser.UserId)
{
if (e.CommandName == "ReAttachUrl")
{
if (detail.State != Const.JointCheck_Audit3 && detail.State != Const.JointCheck_Audit4)
{
ImgId = 0;
}
else
{
ImgId = -1;
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/JointCheck&menuId={2}&edit=1", ImgId, itemId + "r", Const.JointCheckMenuId)));
}
}
if (e.CommandName == "attchUrl")
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/JointCheck&menuId={1}&edit=1", itemId, BLL.Const.JointCheckMenuId)));
}
}
/// <summary>
/// 时间转换
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public string ConvertDate(object date)
{
if (date != null)
{
return string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(date));
}
else
{
return null;
}
}
}
}