using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Web;
using BLL;
using FineUIPro.Web.HSSE.Solution;
using Model;
using Newtonsoft.Json.Linq;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.CQMS.Solution
{
public partial class EditConstructSolution : PageBase
{
#region 定义变量
///
/// 方案审查主键
///
public string ConstructSolutionId
{
get => (string)ViewState["ConstructSolutionId"];
set => ViewState["ConstructSolutionId"] = value;
}
///
/// 是否第二次并且不同意的时候
///
public bool isSendTrue
{
get => (bool)ViewState["isSendTrue"];
set => ViewState["isSendTrue"] = value;
}
#endregion
private static List complianceObligationsCs = new List();
public int ContactImg
{
get => Convert.ToInt32(ViewState["ContactImg"]);
set => ViewState["ContactImg"] = value;
}
private string[] GetUserNames(string Ids)
{
string[] arr = Ids.Split(',');
var data = Funs.DB.Sys_User.Where(t => arr.Contains(t.UserId)).Select(t => t.UserName).ToList();
if (data.Count > 0)
return data.ToArray();
return null;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
isSendTrue = false;
complianceObligationsCs.Clear();
InitDropDownList(); //加载下拉框
//加载一级审核人员
GetCheckManBindGrid1();
//加载二级审批人员
GetCheckManBindGrid2();
//GetCheckManBindGrid3();
GetCheckManBindGrid4();
//BindZYRole();
//BindAQRole();
//BindSGRole();
ContactImg = 0;
txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
ConstructSolutionId = Request.Params["constructSolutionId"];
txtProjectName.Text = ProjectService.GetProjectByProjectId(CurrUser.LoginProjectId).ProjectName;
if (!string.IsNullOrWhiteSpace(ConstructSolutionId))
{
bindApprove();
#region 初始化表单
HFConstructSolutionId.Text = ConstructSolutionId;
var constructSolution =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
txtCode.Text = constructSolution.Code;
if (!string.IsNullOrEmpty(constructSolution.UnitId))
{
drpUnit.SelectedValue = constructSolution.UnitId;
}
if (!string.IsNullOrEmpty(constructSolution.SolutionType))
{
drpModelType.SelectedValue = constructSolution.SolutionType;
}
if (!string.IsNullOrEmpty(constructSolution.SpecialSchemeTypeId) &&
!string.IsNullOrEmpty(constructSolution.SolutionType))
{
drpSpecialType.SelectedValue = constructSolution.SpecialSchemeTypeId;
}
if (constructSolution.CompileDate != null)
{
txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", constructSolution.CompileDate);
}
if (!string.IsNullOrEmpty(constructSolution.UnitWorkIds) &&
constructSolution.UnitWorkIds.Length > 0)
{
txtUnitWork.Values = constructSolution.UnitWorkIds.Split(',');
}
if (!string.IsNullOrEmpty(constructSolution.CNProfessionalCodes) &&
constructSolution.CNProfessionalCodes.Length > 0)
{
txtCNProfessional.Values = constructSolution.CNProfessionalCodes.Split(',');
}
if (constructSolution.Edition != null)
{
txtEdition.Text = constructSolution.Edition.ToString();
}
txtSolutionName.Text = constructSolution.SolutionName;
txtDocContent.Text = HttpUtility.HtmlDecode(constructSolution.Content);
#endregion
#region 检查树节点
var zyUserIds =
CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "Yi");
if (zyUserIds.Count > 0)
{
var zyUserIdsStr = string.Join(",", zyUserIds);
drpzyUserIds.Values = zyUserIdsStr.Split(',');
drpzyUserIds.Texts = GetUserNames(zyUserIdsStr);
//SetCheck(trOne, zyUserIds);
}
var aqUserIds =
CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "Er");
if (aqUserIds.Count > 0)
{
var aqUserIdsStr = string.Join(",", aqUserIds);
drpaqUserIds.Values = aqUserIdsStr.Split(',');
drpaqUserIds.Texts = GetUserNames(aqUserIdsStr);
//SetCheck(trThree, aqUserIds);
}
var sgUserIds =
CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignType(ConstructSolutionId, "SG");
if (sgUserIds.Count > 0)
{
var sgUserIdsStr = string.Join(",", sgUserIds);
//drpsgUserIds.Values = sgUserIdsStr.Split(',');
//drpsgUserIds.Texts = GetUserNames(sgUserIdsStr);
//SetCheck(trFive, sgUserIds);
}
if (!string.IsNullOrEmpty(constructSolution.CsUsers))
{
drpCsUsers.Values = constructSolution.CsUsers.Split(',');
drpCsUsers.Texts = GetUserNames(constructSolution.CsUsers);
}
#endregion
if (constructSolution.State == Const.CQMSConstructSolution_ReCompile)
{
txtProjectName.Enabled = false;
txtCode.Enabled = false;
drpUnit.Enabled = false;
drpModelType.Enabled = false;
drpSpecialType.Enabled = false;
txtCompileDate.Enabled = false;
txtSolutionName.Enabled = false;
txtCNProfessional.Enabled = false;
txtUnitWork.Enabled = false;
//ContactImg = -2;
//Panel2.Enabled = false;
//Panel2.Hidden = true;
btnSave.Hidden = true;
//txtDocContent.Readonly = true;
drpzyUserIds.Enabled = false;
drpaqUserIds.Enabled = false;
//drpsgUserIds.Enabled = false;
drpCsUsers.Enabled = false;
txtEdition.Enabled = false;
agree.Hidden = true;
optio.Hidden = true;
#region 重报
zyUserIds =
CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignTypeNew(ConstructSolutionId, "Yi");
if (zyUserIds.Count > 0)
{
var zyUserIdsStr = string.Join(",", zyUserIds);
drpzyUserIds.Values = zyUserIdsStr.Split(',');
drpzyUserIds.Texts = GetUserNames(zyUserIdsStr);
//SetCheck(trOne, zyUserIds);
}
aqUserIds =
CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignTypeNew(ConstructSolutionId, "Er");
if (aqUserIds.Count > 0)
{
var aqUserIdsStr = string.Join(",", aqUserIds);
drpaqUserIds.Values = aqUserIdsStr.Split(',');
drpaqUserIds.Texts = GetUserNames(aqUserIdsStr);
//SetCheck(trThree, aqUserIds);
}
sgUserIds =
CQMSConstructSolutionApproveService.GetUserIdsApprovesBySignTypeNew(ConstructSolutionId, "SG");
if (sgUserIds.Count > 0)
{
var sgUserIdsStr = string.Join(",", sgUserIds);
//drpsgUserIds.Values = sgUserIdsStr.Split(',');
//drpsgUserIds.Texts = GetUserNames(sgUserIdsStr);
//SetCheck(trFive, sgUserIds);
}
#endregion
//重报的情况下
//加载
complianceObligationsCs = Funs.DB.Solution_CQMSConstructSolutionApprove_Item.Where(x => x.ConstructSolutionId == ConstructSolutionId)
.OrderBy(x => x.SortId).OrderBy(x => x.Proposer).ToList();
if (complianceObligationsCs.Count > 0)
{
gvOperateComplianceObligations.DataSource = complianceObligationsCs;
gvOperateComplianceObligations.DataBind();
}
options.Hidden = false;
options1.Hidden = false;
btnNew.Hidden = true;
gvOperateComplianceObligations.AllColumns[0].Hidden = true;
gvOperateComplianceObligations.AllColumns[6].Hidden = true;
gvOperateComplianceObligations.AllColumns[7].Hidden = true;
}
if (constructSolution.State == Const.CQMSConstructSolution_Audit ||
constructSolution.State == Const.CQMSConstructSolution_Audit1)
{
plApprove2.Hidden = true;
txtProjectName.Enabled = false;
txtCode.Enabled = false;
drpUnit.Enabled = false;
drpModelType.Enabled = false;
drpSpecialType.Enabled = false;
txtCompileDate.Enabled = false;
txtSolutionName.Enabled = false;
txtCNProfessional.Enabled = false;
txtUnitWork.Enabled = false;
ContactImg = -2;
//Panel2.Enabled = false;
//Panel2.Hidden = true;
btnSave.Hidden=true;
txtDocContent.Readonly=true;
drpzyUserIds.Enabled = false;
drpaqUserIds.Enabled = false;
//drpsgUserIds.Enabled = false;
drpCsUsers.Enabled = false;
txtEdition.Enabled = false;
//1级审批 二级审批,如果填写过Solution_CQMSConstructSolutionApprove_Item的情况 则显示
complianceObligationsCs = Funs.DB.Solution_CQMSConstructSolutionApprove_Item.Where(x => x.ConstructSolutionId == ConstructSolutionId
&& x.Proposer == CurrUser.UserId).OrderBy(x => x.SortId).ToList();
if (complianceObligationsCs.Count > 0)
{
isSendTrue = true;
options.Hidden = false;
options1.Hidden = false;
gvOperateComplianceObligations.DataSource = complianceObligationsCs;
gvOperateComplianceObligations.DataBind();
gvOperateComplianceObligations.AllColumns[4].Hidden = true;
}
}
////提交版本人多次修改
//if (constructSolution.CompileMan.Equals(CurrUser.UserId))
//{
// txtProjectName.Enabled = true;
// txtCode.Enabled = true;
// drpUnit.Enabled = true;
// drpModelType.Enabled = true;
// drpSpecialType.Enabled = true;
// txtCompileDate.Enabled = true;
// txtSolutionName.Enabled = true;
// txtCNProfessional.Enabled = true;
// txtUnitWork.Enabled = true;
// ContactImg = 0;
// Panel2.Enabled = true;
// rblIsAgree.Hidden = true;
// rblIsAgree.Required = false;
// options.Hidden = true;
// txtOptions.Required = false;
// optio.Hidden = true;
//}
// if (drpModelType.SelectedItem.Text == "施工组织设计") drpSpecialType.Enabled = false;
}
else
{
agree.Hidden = true;
txtEdition.Text = "0";
options.Hidden = true;
options1.Hidden = true;
optio.Hidden = true;
plApprove2.Hidden = true;
txtCode.Text = SQLHelper.RunProcNewId2("SpGetNewCode3ByProjectId",
"dbo.Solution_CQMSConstructSolution", "Code", CurrUser.LoginProjectId);
}
AddAttachTab();
}
}
///
/// 向tab增加
///
private void AddAttachTab()
{
if (string.IsNullOrEmpty(HFConstructSolutionId.Text)) //新增记录
HFConstructSolutionId.Text = SQLHelper.GetNewID(typeof(Solution_CQMSConstructSolution));
PageContext.RegisterStartupScript(TabStrip1.GetAddTabReference("dynamic_tab2",
string.Format(
"../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}",
ContactImg, HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId), "附件",
IconHelper.GetIconUrl(Icon.Attach), false));
// PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/DocManage&menuId={1}", hdDocId.Text, Const.DocManageMenuId)));
}
private void InitDropDownList()
{
var unitWork = UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId);
var unitWorks = from x in unitWork
select
new
{
x.UnitWorkId,
UnitWorkName = x.UnitWorkCode + "-" + x.UnitWorkName +
UnitWorkService.GetProjectType(x.ProjectType)
};
gvUnitWork.DataSource = unitWorks;
gvUnitWork.DataBind();
var gvCNProfessional = CNProfessionalService.GetList();
gvCNPro.DataSource = gvCNProfessional;
gvCNPro.DataBind();
SolutionTempleteTypeService.InitSolutionTempleteDropDownList(drpModelType, false);
SpecialSchemeTypeService.InitSpecialSchemeTypeDropDownList(drpSpecialType, false);
UnitService.InitUnitByProjectIdUnitTypeDropDownList(drpUnit, CurrUser.LoginProjectId,
Const.ProjectUnitType_2, false);
}
///
/// 审批列表
///
private void bindApprove()
{
var list = CQMSConstructSolutionApproveService.getListData(ConstructSolutionId);
gvApprove.DataSource = list;
gvApprove.DataBind();
}
public string man(object man)
{
var appman = string.Empty;
if (UserService.GetUserByUserId(man.ToString()) != null)
appman = UserService.GetUserByUserId(man.ToString()).UserName;
return appman;
}
private void Save(string saveType)
{
var constructSolution = new Solution_CQMSConstructSolution();
if (!string.IsNullOrEmpty(ConstructSolutionId))
{
constructSolution =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
}
constructSolution.Code = txtCode.Text.Trim();
constructSolution.ProjectId = CurrUser.LoginProjectId;
if (drpUnit.SelectedValue != "0")
{
constructSolution.UnitId = drpUnit.SelectedValue;
}
if (drpModelType.SelectedValue != "0")
{
constructSolution.SolutionType = drpModelType.SelectedValue;
}
if (drpSpecialType.SelectedValue != "0")
{
constructSolution.SpecialSchemeTypeId = drpSpecialType.SelectedValue;
}
constructSolution.SolutionName = txtSolutionName.Text.Trim();
if (!string.IsNullOrEmpty(txtCompileDate.Text.Trim()))
{
constructSolution.CompileDate = Convert.ToDateTime(txtCompileDate.Text.Trim());
}
if (txtUnitWork.Values.Length > 0)
{
constructSolution.UnitWorkIds = string.Join(",", txtUnitWork.Values);
}
if (txtCNProfessional.Values.Length > 0)
{
constructSolution.CNProfessionalCodes = string.Join(",", txtCNProfessional.Values);
}
//抄送人
string sendUserIds = string.Empty;
if (!string.IsNullOrEmpty(drpCsUsers.Value))
{
sendUserIds = string.Join(",", drpCsUsers.Values);
}
constructSolution.CsUsers = sendUserIds;
constructSolution.Edition = Convert.ToInt32(txtEdition.Text);
constructSolution.ConstructSolutionId = HFConstructSolutionId.Text;
constructSolution.Content = txtDocContent.Text.Trim();
if (!string.IsNullOrEmpty(ConstructSolutionId))
{
CQMSConstructSolutionService.UpdateConstructSolution(constructSolution);
if(string.IsNullOrEmpty(constructSolution.State))
{
constructSolution.State = Const.CQMSConstructSolution_Compile;
}
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "修改施工方案");
}
else
{
constructSolution.CompileMan = CurrUser.UserId;
constructSolution.State = Const.CQMSConstructSolution_Compile;
CQMSConstructSolutionService.AddConstructSolution(constructSolution);
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "添加施工方案");
}
if (constructSolution.State== Const. CQMSConstructSolution_Compile && saveType == "submit")
{
countersign(constructSolution.ConstructSolutionId);
constructSolution.State = Const.CQMSConstructSolution_Audit;
CQMSConstructSolutionService.UpdateConstructSolution(constructSolution);
var approve = new Solution_CQMSConstructSolutionApprove();
approve.ConstructSolutionId = constructSolution.ConstructSolutionId;
approve.ApproveDate = DateTime.Now;
approve.ApproveMan = CurrUser.UserId;
approve.ApproveType = Const.CQMSConstructSolution_Compile;
approve.Edition = Convert.ToInt32(txtEdition.Text);
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
}
else if (constructSolution.State == Const.CQMSConstructSolution_ReCompile && saveType == "submit")
{
countersign(constructSolution.ConstructSolutionId);
constructSolution.State = Const.CQMSConstructSolution_Audit;
CQMSConstructSolutionService.UpdateConstructSolution(constructSolution);
var approve = Funs.DB.Solution_CQMSConstructSolutionApprove.Where(x => x.ApproveDate == null &&
x.ConstructSolutionId == ConstructSolutionId && x.ApproveMan == CurrUser.UserId && x.ApproveType=="0").First();
if (approve!=null)
{
approve.ApproveDate = DateTime.Now;
CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve);
TbrOperateComplianceObligationsCSort();
}
}
//一级审核
else if (constructSolution.State == Const.CQMSConstructSolution_Audit && saveType == "submit")
{
UpdateApprove("Yi");
}
//二级审批
else if (constructSolution.State == Const.CQMSConstructSolution_Audit1 && saveType == "submit")
{
UpdateApprove("Er");
}
}
///
/// 修改审批意见
///
private void UpdateApprove(string signType)
{
var state = "";
if (signType == "Yi")
{
state = "2";
}
else {
state = "3";
}
var approveList = CQMSConstructSolutionApproveService.GetThisApproveByConstructSolutionId(ConstructSolutionId, state);
if (approveList.Any(x => x.ApproveMan.IndexOf(CurrUser.UserId) > -1))
{
var approve = approveList.FirstOrDefault(x => x.ApproveMan == CurrUser.UserId);
if (approve.ApproveMan == this.CurrUser.UserId)
{
approve.ApproveDate = DateTime.Now;
approve.IsAgree = Convert.ToBoolean(rblIsAgree.SelectedValue);
//approve.ApproveIdea = txtOptions.Text.Trim();
approve.Edition = Convert.ToInt32(txtEdition.Text);
CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve);
//如果第二次审批,并且有不同意的情况下,进行修改
if (isSendTrue)
{
SprOperateComplianceObligationsCSort();
}
//不同意的情况下 审批人增加列表
if (Convert.ToBoolean(rblIsAgree.SelectedValue) == false)
{
if (isSendTrue)
{
SprOperateComplianceObligationsCSort();
}
else {
OperateComplianceObligationsCSort();
}
}
CheckIsAllAgree(signType);
}
}
}
///
/// 判断是否全部同意
///
private void CheckIsAllAgree(string signType)
{
var edtion = Convert.ToInt32(txtEdition.Text);
var constructSolution =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
//var needApporveCount = allApproves.Where(x => x.ApproveDate == null).Count();
//if (needApporveCount>0) return; //判断是否最后一个审批
//一级审核
if (signType=="Yi")
{
var allApproves = CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId(ConstructSolutionId,
constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition));
var count = allApproves.Where(p => p.SignType == "Yi").Count(); //查询一级所有数量
var ycount = allApproves.Where(p =>p.ApproveDate != null && p.IsAgree != null
&& Convert.ToBoolean(p.IsAgree) && p.SignType=="Yi").Count(); //查询一级审核同意的
var fcount = allApproves.Where(p =>p.ApproveDate != null && p.IsAgree != null
&& !Convert.ToBoolean(p.IsAgree) && p.SignType == "Yi").Count(); //查询一级审核不同意的
//如果当前已经审核完
if (count == (ycount + fcount))
{
//全部同意
if (ycount == count)
{
//走到下一步,修改施工方案状态为二级审批
var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
cons.State = Const.CQMSConstructSolution_Audit1;
CQMSConstructSolutionService.UpdateConstructSolution(cons);
}
else {
//有不同意的直接打回
var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(
ConstructSolutionId);
var reApprove = new Solution_CQMSConstructSolutionApprove();
reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId;
reApprove.ApproveMan = cons.CompileMan;
reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile;
edtion++;
reApprove.Edition = edtion;
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove);
cons.State = Const.CQMSConstructSolution_ReCompile;
cons.CompileDate = DateTime.Now;
cons.Edition = edtion;
constructSolution.State = Const.CQMSConstructSolution_ReCompile;
CQMSConstructSolutionService.UpdateConstructSolution(cons);
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "修改施工方案");
}
}
else {
//没有审核完就跳出
return;
}
}
else if (signType=="Er")
{
var allApproves = CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId2(ConstructSolutionId,
constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition));
var count = allApproves.Where(p => p.SignType == "Er").Count(); //查询二级所有数量
var ycount = allApproves.Where(p => p.ApproveDate != null && p.IsAgree != null
&& Convert.ToBoolean(p.IsAgree) && p.SignType == "Er").Count(); //查询二级审核同意的
var fcount = allApproves.Where(p => p.ApproveDate != null && p.IsAgree != null
&& !Convert.ToBoolean(p.IsAgree) && p.SignType == "Er").Count(); //查询二级审核不同意的
// 如果当前已经审核完
if (count == (ycount + fcount))
{
//全部同意
if (ycount == count)
{
//完成
var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
cons.State = Const.CQMSConstructSolution_Complete;
cons.CompileDate = DateTime.Now;
CQMSConstructSolutionService.UpdateConstructSolution(cons);
}
else
{
//有不同意的直接打回
var cons = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(
ConstructSolutionId);
var reApprove = new Solution_CQMSConstructSolutionApprove();
reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId;
reApprove.ApproveMan = cons.CompileMan;
reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile;
edtion++;
reApprove.Edition = edtion;
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove);
cons.State = Const.CQMSConstructSolution_ReCompile;
cons.CompileDate = DateTime.Now;
cons.Edition = edtion;
constructSolution.State = Const.CQMSConstructSolution_ReCompile;
CQMSConstructSolutionService.UpdateConstructSolution(cons);
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "修改施工方案");
}
}
else
{
//没有审核完就跳出
return;
}
}
//if (count == allApproves.Count)//全部同意
//{
//}
////有不同意意见,打回重新编制
//if (fcount > 0)
//{
//}
}
///
/// 保存验证
///
///
///
public void validate(string buttonName, string tip)
{
if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId,
Const.CQMSConstructSolutionMenuId, buttonName))
{
var err = string.Empty;
if (!AttachFileService.Getfile(HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId))
err += "请上传附件,";
var list = new List();
//list.Add(trOne);
//list.Add(trThree);
//list.Add(trFive);
var res = false;
foreach (var item in list)
if (nodesCheckd(item))
{
res = true;
break;
}
if (!res) err += "请选择总包会签人员,";
if (!string.IsNullOrWhiteSpace(err))
{
err = err.Substring(0, err.LastIndexOf(","));
err += "!";
}
if (!string.IsNullOrWhiteSpace(err))
{
Alert.ShowInTop(err, MessageBoxIcon.Warning);
return;
}
if (!string.IsNullOrWhiteSpace(ConstructSolutionId))
{
//更新时操作
if (tip == "save")
EditConstructSol("save");
else
EditConstructSol("submit");
}
else
{
if (tip == "save")
SaveCQMSConstructSolution("save");
else
SaveCQMSConstructSolution("submit");
//添加时操作
}
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
if (tip == "save")
{
tip = "保存成功!";
}
else
{
tip = "提交成功!";
CQMSConstructSolutionApproveService.PushMessageToNextMan(ConstructSolutionId);
}
Alert.ShowInTop(tip, MessageBoxIcon.Success);
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
#region 添加时候的保存
///
/// 保存方案审查
///
/// 保存类型
private void SaveCQMSConstructSolution(string saveType)
{
var constructSolution = new Solution_CQMSConstructSolution();
constructSolution.Code = txtCode.Text.Trim();
constructSolution.ProjectId = CurrUser.LoginProjectId;
if (drpUnit.SelectedValue != "0")
{
constructSolution.UnitId = drpUnit.SelectedValue;
}
if (drpModelType.SelectedValue != "0")
{
constructSolution.SolutionType = drpModelType.SelectedValue;
}
if (drpSpecialType.SelectedValue != "0")
{
constructSolution.SpecialSchemeTypeId = drpSpecialType.SelectedValue;
}
constructSolution.SolutionName = txtSolutionName.Text.Trim();
if (!string.IsNullOrEmpty(txtCompileDate.Text.Trim()))
{
constructSolution.CompileDate = Convert.ToDateTime(txtCompileDate.Text.Trim());
}
if (txtUnitWork.Values.Length > 0)
{
constructSolution.UnitWorkIds = string.Join(",", txtUnitWork.Values);
}
if (txtCNProfessional.Values.Length > 0)
{
constructSolution.CNProfessionalCodes = string.Join(",", txtCNProfessional.Values);
}
if (saveType == "submit")
{
constructSolution.State = Const.CQMSConstructSolution_Audit;
}
else
{
constructSolution.State = Const.CQMSConstructSolution_Compile;
}
constructSolution.CompileMan = CurrUser.UserId;
constructSolution.Edition = Convert.ToInt32(txtEdition.Text);
constructSolution.ConstructSolutionId = HFConstructSolutionId.Text;
constructSolution.Content = txtDocContent.Text.Trim();
if (!string.IsNullOrEmpty(ConstructSolutionId))
{
CQMSConstructSolutionService.UpdateConstructSolution(constructSolution);
}
else
{
CQMSConstructSolutionService.AddConstructSolution(constructSolution);
}
if (saveType == "submit")
{
var approve1 = new Solution_CQMSConstructSolutionApprove();
approve1.ConstructSolutionId = constructSolution.ConstructSolutionId;
approve1.ApproveDate = DateTime.Now;
approve1.ApproveMan = CurrUser.UserId;
approve1.ApproveType = Const.CQMSConstructSolution_Compile;
approve1.Edition = Convert.ToInt32(txtEdition.Text);
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve1);
}
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "添加施工方案");
//}
//提交
if (saveType == "submit")
{
countersign(constructSolution.ConstructSolutionId);
}
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "编制方案审查");
}
#endregion
///
/// 删除未选择的代办记录
///
///
private void delSolutionApprove(string constructSolutionId, string man, string signType)
{
var count = CQMSConstructSolutionApproveService.getListSolutionApproveCount(constructSolutionId, man,
signType);
if (count > 0) CQMSConstructSolutionApproveService.delSolutionApprove(constructSolutionId, man);
}
///
/// 会签
///
private void countersign(string constructSolutionId)
{
var solution = CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
//一级审核人员
foreach (var item in drpzyUserIds.Values)
{
var approve = new Solution_CQMSConstructSolutionApprove();
approve.ConstructSolutionId = constructSolutionId;
approve.ApproveMan = item;
approve.ApproveType = Const.CQMSConstructSolution_Audit;
approve.SignType = "Yi";
var edtion = Convert.ToInt32(txtEdition.Text);
//if (solution != null) edtion++;
approve.Edition = edtion;
approve.Order = 2;
//delSolutionApprove(constructSolutionId, item, "Yi");
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
}
//二级审批人员
foreach (var item in drpaqUserIds.Values)
{
var approve = new Solution_CQMSConstructSolutionApprove();
approve.ConstructSolutionId = constructSolutionId;
approve.ApproveMan = item;
approve.ApproveType = Const.CQMSConstructSolution_Audit1;
approve.SignType = "Er";
var edtion = Convert.ToInt32(txtEdition.Text);
// if (solution != null) edtion++;
approve.Edition = edtion;
approve.Order = 3;
//delSolutionApprove(constructSolutionId, item, "Er");
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
}
//foreach (var item in drpsgUserIds.Values)
//{
// var approve = new Solution_CQMSConstructSolutionApprove();
// approve.ConstructSolutionId = constructSolutionId;
// approve.ApproveMan = item;
// approve.ApproveType = Const.CQMSConstructSolution_Audit;
// approve.SignType = "SG";
// var edtion = Convert.ToInt32(txtEdition.Text);
// //if (solution != null) edtion++;
// approve.Edition = edtion;
// approve.Order = 3;
// delSolutionApprove(constructSolutionId, item, "SG");
// CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
//}
//if (trOne.Nodes[0].Nodes.Count > 0)
// foreach (var tn in trOne.Nodes[0].Nodes)
// if (tn.Checked)
// {
// var approve = new Solution_CQMSConstructSolutionApprove();
// approve.ConstructSolutionId = constructSolutionId;
// approve.ApproveMan = tn.NodeID;
// approve.ApproveType = Const.CQMSConstructSolution_Audit;
// approve.SignType = "ZY";
// var edtion = Convert.ToInt32(txtEdition.Text);
// //if (solution != null) edtion++;
// approve.Edition = edtion;
// delSolutionApprove(constructSolutionId, tn.NodeID, "ZY");
// CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
// //APICommonService.SendSubscribeMessage(approve.ApproveMan, "施工方案待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
// }
// else
// {
// delSolutionApprove(constructSolutionId, tn.NodeID, "ZY");
// }
//if (trThree.Nodes[0].Nodes.Count > 0)
// foreach (var tn in trThree.Nodes[0].Nodes)
// if (tn.Checked)
// {
// var approve = new Solution_CQMSConstructSolutionApprove();
// approve.ConstructSolutionId = constructSolutionId;
// approve.ApproveMan = tn.NodeID;
// approve.ApproveType = Const.CQMSConstructSolution_Audit;
// approve.SignType = "AQ";
// var edtion = Convert.ToInt32(txtEdition.Text);
// // if (solution != null) edtion++;
// approve.Edition = edtion;
// delSolutionApprove(constructSolutionId, tn.NodeID, "AQ");
// CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
// //APICommonService.SendSubscribeMessage(approve.ApproveMan, "施工方案待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
// }
// else
// {
// delSolutionApprove(constructSolutionId, tn.NodeID, "AQ");
// }
//if (trFive.Nodes[0].Nodes.Count > 0)
// foreach (var tn in trFive.Nodes[0].Nodes)
// if (tn.Checked)
// {
// var approve = new Solution_CQMSConstructSolutionApprove();
// approve.ConstructSolutionId = constructSolutionId;
// approve.ApproveMan = tn.NodeID;
// approve.ApproveType = Const.CQMSConstructSolution_Audit;
// approve.SignType = "SG";
// var edtion = Convert.ToInt32(txtEdition.Text);
// // if (solution != null) edtion++;
// approve.Edition = edtion;
// delSolutionApprove(constructSolutionId, tn.NodeID, "SG");
// CQMSConstructSolutionApproveService.AddConstructSolutionApprove(approve);
// // APICommonService.SendSubscribeMessage(approve.ApproveMan, "施工方案待办理", this.CurrUser.UserName, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now));
// }
// else
// {
// delSolutionApprove(constructSolutionId, tn.NodeID, "SG");
// }
}
//protected void imgBtnFile_Click(object sender, EventArgs e)
//{
// if (string.IsNullOrEmpty(HFConstructSolutionId.Text)) //新增记录
// HFConstructSolutionId.Text = SQLHelper.GetNewID(typeof(Solution_CQMSConstructSolution));
// PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
// string.Format(
// "../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}",
// ContactImg, HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId)));
//}
protected void btnapprove_Click(object sender, EventArgs e)
{
//HFConstructSolutionId.Text
var approve =
CQMSConstructSolutionApproveService.GetConstructSolutionApproveByApproveMan(HFConstructSolutionId.Text,
CurrUser.UserId);
if (approve != null)
{
var approveId = approve.ConstructSolutionApproveId;
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
string.Format(
"../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}",
0, approveId, Const.CQMSConstructSolutionMenuId)));
}
}
protected void gvApprove_RowCommand(object sender, GridCommandEventArgs e)
{
var keys = gvApprove.DataKeys[e.RowIndex];
var fileId = string.Empty;
if (keys == null)
return;
fileId = keys[0].ToString();
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
string.Format(
"../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/Solution&menuId={2}",
-1, fileId, Const.CQMSConstructSolutionMenuId)));
}
///
/// 根据施工方案加载专项施工方案
///
///
///
protected void drpModelType_SelectedIndexChanged(object sender, EventArgs e)
{
if (drpModelType.SelectedValue != Const._Null)
{
if (drpModelType.SelectedItem.Text == "施工组织设计")
{
drpSpecialType.Enabled = false;
drpSpecialType.SelectedValue = null;
drpSpecialType.Required = false;
}
else
{
drpSpecialType.Enabled = true;
drpSpecialType.Required = true;
}
}
}
#region 保存/提交
protected void btnSave_Click(object sender, EventArgs e)
{
//validate(Const.BtnSave, "save");
if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId,
Const.CQMSConstructSolutionMenuId, Const.BtnSave))
{
// SaveCQMSConstructSolution("save");
Save("save");
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
Alert.ShowInTop("保存成功!", MessageBoxIcon.Success);
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
// validate(Const.BtnSubmit, "submmit");
if (!CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId,
Const.CQMSConstructSolutionMenuId, Const.BtnSubmit))
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
var err = string.Empty;
//if (!AttachFileService.Getfile(HFConstructSolutionId.Text, Const.CQMSConstructSolutionMenuId))
// err += "请上传附件,";
//var list = new List();
//list.Add(trOne);
//list.Add(trThree);
//list.Add(trFive);
//var res = false;
//foreach (var item in list)
// if (nodesCheckd(item))
// {
// res = true;
// break;
// }
//if (!res) err += "请选择总包会签人员,";
if (drpzyUserIds.Values.Length<2)
{
err += "一级审核人员必须选择施工工程师和HSE工程师,当前小于2人,";
}
if (drpaqUserIds.Values.Length < 3)
{
err += "一二级审批人员必须选择施工经理、HSE经理、质量经理,当前小于3人,";
}
//if (string.IsNullOrEmpty(drpzyUserIds.Value))
//{
// err += "请选择总包会签专业工程师,";
//}
//if (string.IsNullOrEmpty(drpaqUserIds.Value))
//{
// err += "请选择总包会签HSE组,";
//}
//if (string.IsNullOrEmpty(drpsgUserIds.Value))
//{
// err += "请选择总包会签施工经理,";
//}
if (!string.IsNullOrWhiteSpace(err))
{
err = err.Substring(0, err.LastIndexOf(","));
err += "!";
}
if (!string.IsNullOrEmpty(ConstructSolutionId))
{
var constructSolution =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
if (constructSolution.State == Const.CQMSConstructSolution_Audit && Convert.ToBoolean(rblIsAgree.SelectedValue)==false)
{
if (complianceObligationsCs.Count==0)
{
err += "不同意的情况下请添加修改意见,";
}
}
}
if (!string.IsNullOrWhiteSpace(err))
{
Alert.ShowInTop(err, MessageBoxIcon.Warning);
return;
}
Save("submit");
CQMSConstructSolutionApproveService.PushMessageToNextMan(ConstructSolutionId);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
Alert.ShowInTop("提交成功!", MessageBoxIcon.Success);
}
///
/// 编辑时候保存
///
private void EditConstructSol(string saveType)
{
var constructSolution = new Solution_CQMSConstructSolution();
constructSolution.Code = txtCode.Text.Trim();
constructSolution.ProjectId = CurrUser.LoginProjectId;
if (drpUnit.SelectedValue != "0")
{
constructSolution.UnitId = drpUnit.SelectedValue;
}
if (drpModelType.SelectedValue != "0")
{
constructSolution.SolutionType = drpModelType.SelectedValue;
}
if (drpSpecialType.SelectedValue != "0")
{
constructSolution.SpecialSchemeTypeId = drpSpecialType.SelectedValue;
}
constructSolution.SolutionName = txtSolutionName.Text.Trim();
var edtion = Convert.ToInt32(txtEdition.Text);
constructSolution.Edition = edtion;
if (!string.IsNullOrEmpty(txtCompileDate.Text.Trim()))
{
constructSolution.CompileDate = Convert.ToDateTime(txtCompileDate.Text.Trim());
}
if (txtUnitWork.Values.Length > 0)
{
constructSolution.UnitWorkIds = string.Join(",", txtUnitWork.Values);
}
if (txtCNProfessional.Values.Length > 0)
{
constructSolution.CNProfessionalCodes = string.Join(",", txtCNProfessional.Values);
}
if (!string.IsNullOrEmpty(ConstructSolutionId))
{
constructSolution.ConstructSolutionId = ConstructSolutionId;
var constructSolution1 =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(ConstructSolutionId);
if (saveType == "submit")
{
if (CurrUser.UserId != constructSolution1.CompileMan) //办理人不是编制人,提示查看审批信息
{
if (constructSolution1.State == Const.CQMSConstructSolution_Audit)
{
constructSolution.State = constructSolution1.State;
}
else
{
constructSolution.State = Const.CQMSConstructSolution_Audit;
}
}
else
{
countersign(constructSolution.ConstructSolutionId);
constructSolution.State = constructSolution1.State;
}
if (!CurrUser.UserId.Equals(constructSolution1.CompileMan))
{
var approve = CQMSConstructSolutionApproveService.GetConstructSoluAppByApproveMan(
ConstructSolutionId, CurrUser.UserId, Convert.ToInt32(constructSolution1.Edition));
if (saveType == "submit")
{
approve.ApproveDate = DateTime.Now;
}
approve.Edition = Convert.ToInt32(edtion);
approve.IsAgree = Convert.ToBoolean(rblIsAgree.SelectedValue);
//approve.ApproveIdea = txtOptions.Text.Trim();
CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approve);
}
else
{
if (saveType == "submit")
{
if (constructSolution1.State == Const.CQMSConstructSolution_Audit) //==会签状态升级版本
{
var reApprove = new Solution_CQMSConstructSolutionApprove();
reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId;
reApprove.ApproveDate = DateTime.Now;
reApprove.ApproveMan = constructSolution1.CompileMan;
reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile;
edtion++;
reApprove.Edition = edtion;
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove);
}
else
{
var approves =
CQMSConstructSolutionApproveService.GetConstructSolApproveByApproveMan(
ConstructSolutionId, constructSolution1.CompileMan);
approves.ApproveDate = DateTime.Now;
CQMSConstructSolutionApproveService.UpdateConstructSolutionApprove(approves);
}
}
}
}
else
{
constructSolution.State = constructSolution1.State;
}
//提交时候,更新提交版本
if (CurrUser.UserId.Equals(constructSolution1.CompileMan))
{
if (constructSolution1.State != Const.CQMSConstructSolution_Audit)
{
edtion++;
}
constructSolution.Edition = Convert.ToInt32(edtion);
constructSolution.State = Const.CQMSConstructSolution_Audit;
}
CQMSConstructSolutionService.UpdateConstructSolution(constructSolution);
//判断状态,全部会签同意,则审批完成
if (saveType == "submit")
{
var allApproves =
CQMSConstructSolutionApproveService.GetHandleConstructSolutionApprovesByConstructSolutionId(
ConstructSolutionId,
constructSolution.Edition == null ? 0 : Convert.ToInt32(constructSolution.Edition));
var count = allApproves.Where(p =>
p.ApproveDate != null && p.IsAgree != null && Convert.ToBoolean(p.IsAgree)).Count(); //查询会签同意的
var fcount = allApproves.Where(p =>
p.ApproveDate != null && p.IsAgree != null && !Convert.ToBoolean(p.IsAgree)).Count(); //查询会签不同意的
if (count + fcount == allApproves.Count)
{
if (count == allApproves.Count)
{
var cons =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(
ConstructSolutionId);
cons.State = Const.CQMSConstructSolution_Complete;
cons.CompileDate = DateTime.Now;
CQMSConstructSolutionService.UpdateConstructSolution(cons);
}
//有不同意意见,打回重新编制
if (fcount > 0)
{
var cons =
CQMSConstructSolutionService.GetConstructSolutionByConstructSolutionId(
ConstructSolutionId);
var reApprove = new Solution_CQMSConstructSolutionApprove();
reApprove.ConstructSolutionId = constructSolution.ConstructSolutionId;
reApprove.ApproveMan = cons.CompileMan;
reApprove.ApproveType = Const.CQMSConstructSolution_ReCompile;
edtion++;
reApprove.Edition = edtion;
CQMSConstructSolutionApproveService.AddConstructSolutionApprove(reApprove);
cons.State = Const.CQMSConstructSolution_ReCompile;
cons.CompileDate = DateTime.Now;
constructSolution.State = Const.CQMSConstructSolution_ReCompile;
CQMSConstructSolutionService.UpdateConstructSolution(cons);
}
}
}
LogService.AddSys_Log(CurrUser, constructSolution.Code, ConstructSolutionId,
Const.CQMSConstructSolutionMenuId, "修改施工方案");
}
}
#endregion
#region 动态加载角色树
///
/// 设置树的节点选择
///
///
///
private void SetCheck(Tree tree, List userIds)
{
foreach (var tn in tree.Nodes[0].Nodes)
{
if (userIds.Contains(tn.NodeID))
{
tn.Checked = true;
//txtCopyMan.Text += tn.Text;
}
}
}
/// 加载角色树:动态加载
///
private void BindZYRole()
{
var rootNode = new TreeNode(); //定义根节点
rootNode.Text = "专业工程师";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.EnableCheckEvent = true;
//trOne.Nodes.Add(rootNode);
//trOne.EnableCheckBox = true;
using (var db = new SGGLDB(Funs.ConnString))
{
var userList = from x in db.Sys_User
join y in db.Project_ProjectUnit
on x.UnitId equals y.UnitId
join p in db.Project_ProjectUser
on x.UserId equals p.UserId
where p.RoleId.Contains(Const.ZBCNEngineer)
&& y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId &&
y.ProjectId == CurrUser.LoginProjectId
select x;
//var ss = LINQToDataTable(userList);
foreach (var u in userList)
{
var Node = new TreeNode();
Node.Text = u.UserName;
Node.NodeID = u.UserId;
Node.EnableCheckEvent = true;
rootNode.Nodes.Add(Node);
}
}
}
///
/// 判断是否有选择
///
///
///
public bool nodesCheckd(Tree node)
{
var res = false;
if (node.Nodes[0].Nodes.Count > 0)
foreach (var item in node.Nodes[0].Nodes)
if (item.Checked)
{
res = true;
break;
}
return res;
}
private void BindAQRole()
{
var rootNode = new TreeNode(); //定义根节点
rootNode.Text = "HSE组";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.EnableCheckEvent = true;
//trThree.Nodes.Add(rootNode);
//trThree.EnableCheckBox = true;
using (var db = new SGGLDB(Funs.ConnString))
{
var userList = from x in db.Sys_User
join y in db.Project_ProjectUnit
on x.UnitId equals y.UnitId
join p in db.Project_ProjectUser
on x.UserId equals p.UserId
where (p.RoleId.Contains(Const.HSSEManager) || p.RoleId.Contains(Const.HSSEEngineer))
&& y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId &&
y.ProjectId == CurrUser.LoginProjectId
orderby x.UserCode
select x;
foreach (var u in userList)
{
var roleNode = new TreeNode();
roleNode.Text = u.UserName;
roleNode.NodeID = u.UserId;
rootNode.Nodes.Add(roleNode);
}
}
}
private void BindSGRole()
{
var rootNode = new TreeNode(); //定义根节点
rootNode.Text = "施工经理";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.EnableCheckEvent = true;
//trFive.Nodes.Add(rootNode);
//trFive.EnableCheckBox = true;
using (var db = new SGGLDB(Funs.ConnString))
{
var userList = from x in db.Sys_User
join y in db.Project_ProjectUnit
on x.UnitId equals y.UnitId
join p in db.Project_ProjectUser
on x.UserId equals p.UserId
where (p.RoleId.Contains(Const.ConstructionManager) ||
p.RoleId.Contains(Const.ConstructionAssistantManager))
&& y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId &&
y.ProjectId == CurrUser.LoginProjectId
orderby x.UserCode
select x;
foreach (var u in userList)
{
var roleNode = new TreeNode();
roleNode.Text = u.UserName;
roleNode.NodeID = u.UserId;
rootNode.Nodes.Add(roleNode);
}
}
}
#endregion
#region 树结构的全选
protected void trOne_NodeCheck(object sender, TreeCheckEventArgs e)
{
//if (e.Checked)
// trOne.CheckAllNodes(e.Node.Nodes);
//else
// trOne.UncheckAllNodes(e.Node.Nodes);
}
protected void trTwo_NodeCheck(object sender, TreeCheckEventArgs e)
{
/*if (e.Checked)
{
trTwo.CheckAllNodes(e.Node.Nodes);
}
else
{
trTwo.UncheckAllNodes(e.Node.Nodes);
}*/
}
protected void trThree_NodeCheck(object sender, TreeCheckEventArgs e)
{
//if (e.Checked)
// trThree.CheckAllNodes(e.Node.Nodes);
//else
// trThree.UncheckAllNodes(e.Node.Nodes);
}
protected void trFour_NodeCheck(object sender, TreeCheckEventArgs e)
{
/*if (e.Checked)
{
trFour.CheckAllNodes(e.Node.Nodes);
}
else
{
trFour.UncheckAllNodes(e.Node.Nodes);
}*/
}
protected void trFive_NodeCheck(object sender, TreeCheckEventArgs e)
{
//if (e.Checked)
// trFive.CheckAllNodes(e.Node.Nodes);
//else
// trFive.UncheckAllNodes(e.Node.Nodes);
}
protected void trSixe_NodeCheck(object sender, TreeCheckEventArgs e)
{
/*if (e.Checked)
{
trSixe.CheckAllNodes(e.Node.Nodes);
}
else
{
trSixe.UncheckAllNodes(e.Node.Nodes);
}*/
}
#endregion
#region 加载一级审核人员
private void GetCheckManBindGrid1()
{
var tb = GetCheckManSource1();
// 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
Grid1.RecordCount = tb.Rows.Count;
// 2.获取当前分页数据
var table = this.GetPagedDataTable(Grid1, tb);
// 3.绑定到Grid
Grid1.DataSource = table;
Grid1.DataBind();
}
///
/// 一级审核人员, 施工工程师和HSE工程师
///
///
private DataTable GetCheckManSource1()
{
string sortField = Grid1.SortField;
string sortDirection = Grid1.SortDirection;
var userList = (from x in Funs.DB.Sys_User
join y in Funs.DB.Project_ProjectUnit
on x.UnitId equals y.UnitId
join p in Funs.DB.Project_ProjectUser
on x.UserId equals p.UserId
where (p.RoleId.Contains(Const.ZBCNEngineer)|| p.RoleId.Contains(Const.HSSEEngineer)
|| p.RoleId.Contains(Const.SGEngineer))
&& y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId &&
y.ProjectId == CurrUser.LoginProjectId
select x);
DataTable table2 = LINQToDataTable(userList);
DataView view2 = table2.DefaultView;
view2.Sort = String.Format("{0} {1}", sortField, sortDirection);
string searchKeyword = ttbSearch1.Text.Trim();
if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch1.ShowTrigger1)
{
view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword);
}
return view2.ToTable();
}
protected void ttbSearch_Trigger1Click1(object sender, EventArgs e)
{
ttbSearch1.ShowTrigger1 = true;
GetCheckManBindGrid1();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
GetCheckManBindGrid1();
}
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
GetCheckManBindGrid1();
}
protected void ttbSearch_Trigger2Click1(object sender, EventArgs e)
{
ttbSearch1.ShowTrigger1 = true;
GetCheckManBindGrid1();
}
#endregion
#region 加载二级审批人员
private void GetCheckManBindGrid2()
{
var tb = GetCheckManSource2();
// 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
Grid2.RecordCount = tb.Rows.Count;
// 2.获取当前分页数据
var table = this.GetPagedDataTable(Grid2, tb);
// 3.绑定到Grid
Grid2.DataSource = table;
Grid2.DataBind();
}
///
/// 二级审批人员显示施工经理、HSE经理、质量经理
///
///
private DataTable GetCheckManSource2()
{
string sortField = Grid2.SortField;
string sortDirection = Grid2.SortDirection;
var userList = (from x in Funs.DB.Sys_User
join y in Funs.DB.Project_ProjectUnit
on x.UnitId equals y.UnitId
join p in Funs.DB.Project_ProjectUser
on x.UserId equals p.UserId
where (p.RoleId.Contains(Const.HSSEManager) || p.RoleId.Contains(Const.ConstructionManager)
|| p.RoleId.Contains(Const.QAManager))
&& y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId &&
y.ProjectId == CurrUser.LoginProjectId
orderby x.UserCode
select x);
DataTable table2 = LINQToDataTable(userList);
DataView view2 = table2.DefaultView;
view2.Sort = String.Format("{0} {1}", sortField, sortDirection);
string searchKeyword = ttbSearch1.Text.Trim();
if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch1.ShowTrigger1)
{
view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword);
}
return view2.ToTable();
}
protected void ttbSearch_Trigger1Click2(object sender, EventArgs e)
{
ttbSearch2.ShowTrigger1 = true;
GetCheckManBindGrid2();
}
protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid2.PageIndex = e.NewPageIndex;
GetCheckManBindGrid2();
}
protected void Grid2_Sort(object sender, GridSortEventArgs e)
{
Grid2.SortDirection = e.SortDirection;
Grid2.SortField = e.SortField;
GetCheckManBindGrid2();
}
protected void ttbSearch_Trigger2Click2(object sender, EventArgs e)
{
ttbSearch2.ShowTrigger1 = true;
GetCheckManBindGrid2();
}
#endregion
#region 加载施工经理 不用
//private void GetCheckManBindGrid3()
//{
// var tb = GetCheckManSource3();
// // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
// Grid3.RecordCount = tb.Rows.Count;
// // 2.获取当前分页数据
// var table = this.GetPagedDataTable(Grid3, tb);
// // 3.绑定到Grid
// Grid3.DataSource = table;
// Grid3.DataBind();
//}
//private DataTable GetCheckManSource3()
//{
// string sortField = Grid3.SortField;
// string sortDirection = Grid3.SortDirection;
// var userList = (from x in Funs.DB.Sys_User
// join y in Funs.DB.Project_ProjectUnit
// on x.UnitId equals y.UnitId
// join p in Funs.DB.Project_ProjectUser
// on x.UserId equals p.UserId
// where (p.RoleId.Contains(Const.ConstructionManager) ||
// p.RoleId.Contains(Const.ConstructionAssistantManager))
// && y.UnitType == Const.ProjectUnitType_1 && p.ProjectId == CurrUser.LoginProjectId &&
// y.ProjectId == CurrUser.LoginProjectId
// orderby x.UserCode
// select x);
// DataTable table2 = LINQToDataTable(userList);
// DataView view2 = table2.DefaultView;
// view2.Sort = String.Format("{0} {1}", sortField, sortDirection);
// string searchKeyword = ttbSearch1.Text.Trim();
// if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch1.ShowTrigger1)
// {
// view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword);
// }
// return view2.ToTable();
//}
//protected void ttbSearch_Trigger1Click3(object sender, EventArgs e)
//{
// ttbSearch3.ShowTrigger1 = true;
// GetCheckManBindGrid3();
//}
//protected void Grid3_PageIndexChange(object sender, GridPageEventArgs e)
//{
// Grid3.PageIndex = e.NewPageIndex;
// GetCheckManBindGrid3();
//}
//protected void Grid3_Sort(object sender, GridSortEventArgs e)
//{
// Grid3.SortDirection = e.SortDirection;
// Grid3.SortField = e.SortField;
// GetCheckManBindGrid3();
//}
//protected void ttbSearch_Trigger2Click3(object sender, EventArgs e)
//{
// ttbSearch3.ShowTrigger1 = true;
// GetCheckManBindGrid3();
//}
#endregion
#region 加载抄送人员
private void GetCheckManBindGrid4()
{
var tb = GetCheckManSource4();
// 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
Grid4.RecordCount = tb.Rows.Count;
// 2.获取当前分页数据
var table = this.GetPagedDataTable(Grid4, tb);
// 3.绑定到Grid
Grid4.DataSource = table;
Grid4.DataBind();
}
private DataTable GetCheckManSource4()
{
string sortField = Grid4.SortField;
string sortDirection = Grid4.SortDirection;
var userList = (from x in Funs.DB.Sys_User
join y in Funs.DB.Project_ProjectUnit
on x.UnitId equals y.UnitId
join p in Funs.DB.Project_ProjectUser
on x.UserId equals p.UserId
where p.ProjectId == CurrUser.LoginProjectId &&
y.ProjectId == CurrUser.LoginProjectId
orderby x.UserCode
select x);
DataTable table2 = LINQToDataTable(userList);
DataView view2 = table2.DefaultView;
view2.Sort = String.Format("{0} {1}", sortField, sortDirection);
string searchKeyword = ttbSearch4.Text.Trim();
if (!String.IsNullOrEmpty(searchKeyword) && ttbSearch4.ShowTrigger1)
{
view2.RowFilter = String.Format(" UserName LIKE '%{0}%'", searchKeyword);
}
return view2.ToTable();
}
protected void ttbSearch_Trigger1Click4(object sender, EventArgs e)
{
ttbSearch4.ShowTrigger1 = true;
GetCheckManBindGrid4();
}
protected void Grid4_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid4.PageIndex = e.NewPageIndex;
GetCheckManBindGrid4();
}
protected void Grid4_Sort(object sender, GridSortEventArgs e)
{
Grid4.SortDirection = e.SortDirection;
Grid4.SortField = e.SortField;
GetCheckManBindGrid4();
}
protected void ttbSearch_Trigger2Click4(object sender, EventArgs e)
{
ttbSearch4.ShowTrigger1 = true;
GetCheckManBindGrid4();
}
#endregion
#region linq结果转换datatable
///
/// linq结果转换datatable
///
///
///
///
public DataTable LINQToDataTable(IEnumerable varlist)
{
DataTable dtReturn = new DataTable();
// column names
PropertyInfo[] oProps = null;
if (varlist == null) return dtReturn;
foreach (T rec in varlist)
{
// Use reflection to get property names, to create table, Only first time, others
if (oProps == null)
{
oProps = ((Type)rec.GetType()).GetProperties();
foreach (PropertyInfo pi in oProps)
{
Type colType = pi.PropertyType;
if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition()
== typeof(Nullable<>)))
{
colType = colType.GetGenericArguments()[0];
}
dtReturn.Columns.Add(new DataColumn(pi.Name, colType));
}
}
DataRow dr = dtReturn.NewRow();
foreach (PropertyInfo pi in oProps)
{
dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue
(rec, null);
}
dtReturn.Rows.Add(dr);
}
return dtReturn;
}
#endregion
#region 审批填写表格
///
/// 审批人保存第一次
///
private void OperateComplianceObligationsCSort()
{
BLL.ComplianceObligationsCService.DeleteSolution_CQMSConstructSolutionApprove_Item(ConstructSolutionId,CurrUser.UserId);
jerqueSaveComplianceObligationsCList();
foreach (Model.Solution_CQMSConstructSolutionApprove_Item coc in complianceObligationsCs)
{
coc.ConstructSolutionId = ConstructSolutionId;
BLL.ComplianceObligationsCService.AddSolution_CQMSConstructSolutionApprove_Item(coc);
}
}
///
/// 填报人保存(修改)
///
private void TbrOperateComplianceObligationsCSort()
{
jerqueSaveComplianceObligationsCListTbr();
foreach (Model.Solution_CQMSConstructSolutionApprove_Item coc in complianceObligationsCs)
{
coc.ConstructSolutionId = ConstructSolutionId;
BLL.ComplianceObligationsCService.UpdateSolution_CQMSConstructSolutionApprove_Item(coc);
}
}
///
/// 审批人(修改)
///
private void SprOperateComplianceObligationsCSort()
{
jerqueSaveComplianceObligationsCListSpr();
foreach (Model.Solution_CQMSConstructSolutionApprove_Item coc in complianceObligationsCs)
{
coc.ConstructSolutionId = ConstructSolutionId;
BLL.ComplianceObligationsCService.UpdateSolution_CQMSConstructSolutionApprove_ItemNew(coc);
}
}
protected void btnNew_Click(object sender, EventArgs e)
{
jerqueSaveComplianceObligationsCList();
Model.Solution_CQMSConstructSolutionApprove_Item complianceObligationsC = new Model.Solution_CQMSConstructSolutionApprove_Item
{
Id = SQLHelper.GetNewID(typeof(Model.Solution_CQMSConstructSolutionApprove_Item))
};
complianceObligationsCs.Add(complianceObligationsC);
this.gvOperateComplianceObligations.DataSource = complianceObligationsCs;
this.gvOperateComplianceObligations.DataBind();
}
private void jerqueSaveComplianceObligationsCList()
{
complianceObligationsCs.Clear();
JArray mergedData = gvOperateComplianceObligations.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
int i = mergedRow.Value("index");
var hazardSort = new Model.Solution_CQMSConstructSolutionApprove_Item
{
Id = this.gvOperateComplianceObligations.Rows[i].DataKeys[0].ToString(),
SortId= i+1,
Chapter = values.Value("Chapter").ToString(),
Amendment = values.Value("Amendment").ToString(),
Proposer = CurrUser.UserId,
ProposerName= CurrUser.UserName,
Modification = values.Value("Modification").ToString(),
ReviewerOpinion = values.Value("ReviewerOpinion").ToString(),
IsAccept = values.Value("IsAccept").ToString(),
};
complianceObligationsCs.Add(hazardSort);
}
}
private void jerqueSaveComplianceObligationsCListTbr()
{
complianceObligationsCs.Clear();
JArray mergedData = gvOperateComplianceObligations.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
int i = mergedRow.Value("index");
var hazardSort = new Model.Solution_CQMSConstructSolutionApprove_Item
{
Id = this.gvOperateComplianceObligations.Rows[i].DataKeys[0].ToString(),
Modification = values.Value("Modification").ToString(),
};
complianceObligationsCs.Add(hazardSort);
}
}
private void jerqueSaveComplianceObligationsCListSpr()
{
complianceObligationsCs.Clear();
JArray mergedData = gvOperateComplianceObligations.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
int i = mergedRow.Value("index");
var hazardSort = new Model.Solution_CQMSConstructSolutionApprove_Item
{
Id = this.gvOperateComplianceObligations.Rows[i].DataKeys[0].ToString(),
ReviewerOpinion= values.Value("ReviewerOpinion").ToString(),
IsAccept = values.Value("IsAccept").ToString(),
};
complianceObligationsCs.Add(hazardSort);
}
}
protected void gvOperateComplianceObligations_RowCommand(object sender, GridCommandEventArgs e)
{
jerqueSaveComplianceObligationsCList();
string rowID = this.gvOperateComplianceObligations.DataKeys[e.RowIndex][0].ToString();
if (e.CommandName == "Delete")
{
foreach (var item in complianceObligationsCs)
{
if (item.Id == rowID)
{
complianceObligationsCs.Remove(item);
break;
}
}
gvOperateComplianceObligations.DataSource = complianceObligationsCs;
gvOperateComplianceObligations.DataBind();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
///
/// 不同意的情况下显示
///
///
///
protected void radChange(object sender, EventArgs e) {
//不同意的情况下
if (rblIsAgree.SelectedValue == "false")
{
if (isSendTrue)
{
}
else {
//显示
options.Hidden = false;
options1.Hidden = false;
//第一次
gvOperateComplianceObligations.AllColumns[4].Hidden = true;
gvOperateComplianceObligations.AllColumns[5].Hidden = true;
gvOperateComplianceObligations.AllColumns[6].Hidden = true;
gvOperateComplianceObligations.AllColumns[7].Hidden = true;
}
}
else {
if (isSendTrue)
{
}
else {
//同意的情况下
options.Hidden = true;
options1.Hidden = true;
}
}
}
}
}