SGGL_SHJ/SGGL/FineUIPro.Web/ZHGL/Plan/ProjectPlanEdit.aspx.cs

496 lines
23 KiB
C#

using BLL;
using System;
using System.Collections.Generic;
using System.Linq;
namespace FineUIPro.Web.ZHGL.Plan
{
public partial class ProjectPlanEdit : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
public string ProjectPlanId
{
get
{
return (string)ViewState["ProjectPlanId"];
}
set
{
ViewState["ProjectPlanId"] = value;
}
}
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
public int ContactImg
{
get
{
return Convert.ToInt32(ViewState["ContactImg"]);
}
set
{
ViewState["ContactImg"] = value;
}
}
/// <summary>
/// 定义会签意见集合
/// </summary>
public static List<Model.ActionPlan_ProjectPlanApprove> approves = new List<Model.ActionPlan_ProjectPlanApprove>();
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.ProjectId = this.CurrUser.LoginProjectId;
this.ProjectPlanId = Request.Params["ProjectPlanId"];
ProjectService.InitAllProjectDropDownList(this.drpProject, true);
var q = (from x in Funs.DB.Person_Persons where x.UnitId == Const.UnitId_SEDIN && x.DepartId == Const.Depart_constructionId && x.RoleIds != null && x.RoleIds != Const.NoOfficeRole && x.RoleIds != string.Empty && (!x.IsPost.HasValue || x.IsPost == true) select x).ToList();
Model.ActionPlan_ProjectPlan ProjectPlan = BLL.ProjectPlanService.GetProjectPlanById(this.ProjectPlanId);
if (ProjectPlan != null)
{
var compileMan = BLL.Person_PersonsService.GetPerson_PersonsById(ProjectPlan.CompileMan);
if (compileMan != null)
{
q.Add(compileMan);
}
}
this.drpCompileMan.DataTextField = "PersonName";
this.drpCompileMan.DataValueField = "PersonId";
this.drpCompileMan.DataSource = q;
this.drpCompileMan.DataBind();
Funs.FineUIPleaseSelect(this.drpCompileMan);
this.drpPerson.DataTextField = "PersonName";
this.drpPerson.DataValueField = "PersonId";
this.drpPerson.DataSource = q;
this.drpPerson.DataBind();
Funs.FineUIPleaseSelect(this.drpPerson);
ContactImg = 0;
if (!string.IsNullOrEmpty(this.ProjectPlanId))
{
if (ProjectPlan != null)
{
HFProjectPlanId.Text = this.ProjectPlanId;
this.ProjectId = ProjectPlan.ProjectId;
if (ProjectPlan.Edition != null)
{
txtEdition.Text = ProjectPlan.Edition.ToString();
}
this.drpProject.SelectedValue = ProjectPlan.ProjectId;
///读取编号
this.txtProjectPlanCode.Text = ProjectPlan.ProjectPlanCode;
this.txtProjectPlanName.Text = ProjectPlan.ProjectPlanName;
this.txtVersionNo.Text = ProjectPlan.VersionNo;
if (!string.IsNullOrEmpty(ProjectPlan.ProjectType))
{
this.drpProjectType.SelectedValue = ProjectPlan.ProjectType;
}
else
{
this.drpProjectType.Hidden = true;
}
if (!string.IsNullOrEmpty(ProjectPlan.CompileMan))
{
this.drpCompileMan.SelectedValue = ProjectPlan.CompileMan;
}
if (ProjectPlan.CompileDate != null)
{
this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", ProjectPlan.CompileDate);
}
List<string> list = BLL.ProjectPlanApproveService.GetReviewingPersonIds(this.ProjectPlanId);
if (list.Count > 0)
{
this.drpPerson.SelectedValueArray = list.ToArray();
}
bindApprove();
if (ProjectPlan.States == Const.ProjectPlan_ReCompile || ProjectPlan.States == Const.ProjectPlan_Compile)
{
agree.Hidden = true;
options.Hidden = true;
optio.Hidden = true;
}
if (ProjectPlan.States == Const.ProjectPlan_Reviewing)
{
txtProjectPlanCode.Readonly = true;
txtProjectPlanName.Readonly = true;
txtVersionNo.Readonly = true;
drpProjectType.Readonly = true;
drpProject.Readonly = true;
drpCompileMan.Readonly = true;
txtCompileDate.Readonly = true;
drpPerson.Readonly = true;
ContactImg = -1;
}
//提交版本人多次修改
if (ProjectPlan.CompileMan.Equals(CurrUser.PersonId))
{
txtProjectPlanCode.Enabled = true;
txtProjectPlanName.Enabled = true;
txtVersionNo.Enabled = true;
drpProjectType.Enabled = true;
drpProject.Readonly = true;
drpCompileMan.Enabled = true;
txtCompileDate.Enabled = true;
ContactImg = 0;
Model.ActionPlan_ProjectPlanApprove approve = ProjectPlanApproveService.GetProjectPlanApproveByApproveMan(ProjectPlanId, CurrUser.PersonId);
if (approve == null)
{
rblIsAgree.Hidden = true;
rblIsAgree.Required = false;
options.Hidden = true;
txtOptions.Required = false;
optio.Hidden = true;
}
}
}
WindowAtt_Close(null, null);
}
else
{
this.drpCompileMan.SelectedValue = this.CurrUser.PersonId;
this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
this.trAtt.Hidden = true;
agree.Hidden = true;
txtEdition.Text = "0";
options.Hidden = true;
optio.Hidden = true;
plApprove2.Hidden = true;
////自动生成编码
//this.txtProjectPlanCode.Text = BLL.CodeRecordsService.ReturnCodeByMenuIdProjectId(BLL.Const.OfficeProjectPlanMenuId, this.ProjectId, this.CurrUser.UnitId);
this.txtProjectPlanName.Text = this.SimpleForm1.Title;
this.txtVersionNo.Text = "V1.0";
}
}
}
/// <summary>
/// 审批列表
/// </summary>
private void bindApprove()
{
var list = ProjectPlanApproveService.getListData(ProjectPlanId);
gvApprove.DataSource = list;
gvApprove.DataBind();
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (this.drpCompileMan.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择编制人!", MessageBoxIcon.Warning);
return;
}
this.SaveData(BLL.Const.BtnSave);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.drpProject.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择项目!", MessageBoxIcon.Warning);
return;
}
if (this.drpCompileMan.SelectedValue == BLL.Const._Null)
{
Alert.ShowInTop("请选择编制人!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(HFProjectPlanId.Text))
{
Alert.ShowInTop("请上传附件!", MessageBoxIcon.Warning);
return;
}
if (this.drpPerson.SelectedItemArray.Length == 1 && this.drpPerson.SelectedValue == Const._Null)
{
Alert.ShowInTop("请选择评审人员!", MessageBoxIcon.Warning);
return;
}
this.SaveData(BLL.Const.BtnSubmit);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
Model.ActionPlan_ProjectPlan ProjectPlan = new Model.ActionPlan_ProjectPlan
{
ProjectPlanCode = this.txtProjectPlanCode.Text.Trim(),
ProjectPlanName = this.txtProjectPlanName.Text.Trim(),
VersionNo = this.txtVersionNo.Text.Trim(),
ProjectType = this.drpProjectType.SelectedValue,
};
if (this.drpProject.SelectedValue != BLL.Const._Null)
{
ProjectPlan.ProjectId = this.drpProject.SelectedValue;
}
if (this.drpCompileMan.SelectedValue != BLL.Const._Null)
{
ProjectPlan.CompileMan = this.drpCompileMan.SelectedValue;
}
if (!string.IsNullOrEmpty(this.txtCompileDate.Text.Trim()))
{
ProjectPlan.CompileDate = Convert.ToDateTime(this.txtCompileDate.Text.Trim());
}
int edtion = Convert.ToInt32(txtEdition.Text);
ProjectPlan.Edition = edtion;
if (!string.IsNullOrEmpty(this.ProjectPlanId))
{
ProjectPlan.ProjectPlanId = this.ProjectPlanId;
Model.ActionPlan_ProjectPlan ProjectPlan1 = ProjectPlanService.GetProjectPlanById(ProjectPlanId);
if (type == BLL.Const.BtnSubmit)
{
if (ProjectPlan1.States == Const.ProjectPlan_Compile || ProjectPlan1.States == Const.ProjectPlan_ReCompile)
{
Model.ActionPlan_ProjectPlanApprove approve = ProjectPlanApproveService.GetConstructSoluAppByApproveMan(ProjectPlanId, CurrUser.PersonId, Convert.ToInt32(ProjectPlan1.Edition));
if (type == BLL.Const.BtnSubmit)
{
approve.ApproveDate = DateTime.Now;
}
approve.Edition = Convert.ToInt32(edtion);
approve.IsAgree = Convert.ToBoolean(rblIsAgree.SelectedValue);
approve.ApproveIdea = txtOptions.Text.Trim();
ProjectPlanApproveService.UpdateProjectPlanApprove(approve);
if (approve.IsAgree == true)
{
foreach (var item in this.drpPerson.SelectedValueArray)
{
if (item != Const._Null)
{
Model.ActionPlan_ProjectPlanApprove approve2 = new Model.ActionPlan_ProjectPlanApprove();
approve2.ProjectPlanId = ProjectPlan.ProjectPlanId;
approve2.ApproveMan = item;
approve2.ApproveType = Const.ProjectPlan_Reviewing;
approve2.Edition = Convert.ToInt32(edtion);
BLL.ProjectPlanApproveService.AddProjectPlanApprove(approve2);
}
}
ProjectPlan.States = Const.ProjectPlan_Reviewing;
}
else
{
Model.ActionPlan_ProjectPlanApprove reApprove = new Model.ActionPlan_ProjectPlanApprove();
reApprove.ProjectPlanId = ProjectPlan.ProjectPlanId;
reApprove.ApproveMan = ProjectPlan1.CompileMan;
reApprove.ApproveType = Const.ProjectPlan_ReCompile;
edtion++;
reApprove.Edition = edtion;
ProjectPlanApproveService.AddProjectPlanApprove(reApprove);
ProjectPlan.States = Const.ProjectPlan_ReCompile;
}
}
else if (ProjectPlan1.States == Const.ProjectPlan_Reviewing)
{
ProjectPlan.States = Const.ProjectPlan_Reviewing;
Model.ActionPlan_ProjectPlanApprove approve = ProjectPlanApproveService.GetConstructSoluAppByApproveMan(ProjectPlanId, CurrUser.PersonId, Convert.ToInt32(ProjectPlan1.Edition));
if (approve != null)
{
approve.ApproveDate = DateTime.Now;
approve.ApproveIdea = this.txtOptions.Text.Trim();
approve.IsAgree = Convert.ToBoolean(this.rblIsAgree.SelectedValue);
BLL.ProjectPlanApproveService.UpdateProjectPlanApprove(approve);
}
List<Model.ActionPlan_ProjectPlanApprove> approve3s = BLL.ProjectPlanApproveService.GetReviewings(ProjectPlanId, edtion); //审批集合
List<Model.ActionPlan_ProjectPlanApprove> approve3Ends = BLL.ProjectPlanApproveService.GetReviewingEnds(ProjectPlanId, edtion); //审批完成集合
int okNum = approve3Ends.Count(x => x.IsAgree == true); //审批同意数量
if (approve3s.Count == approve3Ends.Count)
{
if (approve3s.Count == okNum) //全部同意,审批完成
{
ProjectPlan.States = Const.ProjectPlan_Complete;
}
else //有人不同意,(编制人)修改
{
Model.ActionPlan_ProjectPlanApprove reApprove = new Model.ActionPlan_ProjectPlanApprove();
reApprove.ProjectPlanId = ProjectPlan.ProjectPlanId;
reApprove.ApproveMan = ProjectPlan1.CompileMan;
reApprove.ApproveType = Const.ProjectPlan_ReCompile;
edtion++;
reApprove.Edition = edtion;
ProjectPlanApproveService.AddProjectPlanApprove(reApprove);
ProjectPlan.States = Const.ProjectPlan_ReCompile;
ProjectPlan.Edition= edtion;
}
}
}
}
else
{
ProjectPlan.States = ProjectPlan1.States;
}
//提交时候,更新提交版本
//if (CurrUser.PersonId.Equals(ProjectPlan1.CompileMan))
//{
// if (ProjectPlan1.States != Const.ProjectPlan_Audit)
// {
// edtion++;
// }
// ProjectPlan.Edition = Convert.ToInt32(edtion);
// ProjectPlan.States = Const.ProjectPlan_Audit;
//}
BLL.ProjectPlanService.UpdateProjectPlan(ProjectPlan);
BLL.LogService.AddSys_Log(this.CurrUser, this.txtProjectPlanCode.Text, this.ProjectPlanId, BLL.Const.OfficeProjectPlanMenuId, Const.BtnModify);
}
else
{
if (!string.IsNullOrEmpty(HFProjectPlanId.Text))
{
ProjectPlan.ProjectPlanId = HFProjectPlanId.Text;
}
else
{
ProjectPlan.ProjectPlanId = SQLHelper.GetNewID(typeof(Model.ActionPlan_ProjectPlan));
}
ProjectPlan.States = BLL.Const.ProjectPlan_Compile;
if (type == BLL.Const.BtnSubmit)
{
ProjectPlan.States = BLL.Const.ProjectPlan_Reviewing;
}
BLL.ProjectPlanService.AddProjectPlan(ProjectPlan);
if (type == BLL.Const.BtnSubmit)
{
Model.ActionPlan_ProjectPlanApprove approve1 = new Model.ActionPlan_ProjectPlanApprove();
approve1.ProjectPlanId = ProjectPlan.ProjectPlanId;
approve1.ApproveDate = DateTime.Now;
approve1.ApproveMan = this.CurrUser.PersonId;
approve1.ApproveType = Const.ProjectPlan_Compile;
approve1.Edition = Convert.ToInt32(txtEdition.Text);
ProjectPlanApproveService.AddProjectPlanApprove(approve1);
foreach (var item in this.drpPerson.SelectedValueArray)
{
if (item != Const._Null)
{
Model.ActionPlan_ProjectPlanApprove approve2 = new Model.ActionPlan_ProjectPlanApprove();
approve2.ProjectPlanId = ProjectPlan.ProjectPlanId;
approve2.ApproveMan = item;
approve2.ApproveType = Const.ProjectPlan_Reviewing;
approve2.Edition = Convert.ToInt32(edtion);
BLL.ProjectPlanApproveService.AddProjectPlanApprove(approve2);
}
}
}
else
{
Model.ActionPlan_ProjectPlanApprove approve1 = new Model.ActionPlan_ProjectPlanApprove();
approve1.ProjectPlanId = ProjectPlan.ProjectPlanId;
approve1.ApproveMan = this.CurrUser.PersonId;
approve1.ApproveType = Const.ProjectPlan_Compile;
approve1.Edition = Convert.ToInt32(txtEdition.Text);
ProjectPlanApproveService.AddProjectPlanApprove(approve1);
}
BLL.LogService.AddSys_Log(this.CurrUser, this.txtProjectPlanCode.Text, this.ProjectPlanId, BLL.Const.OfficeProjectPlanMenuId, Const.BtnAdd);
}
}
#endregion
#region
/// <summary>
/// 上传附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(HFProjectPlanId.Text)) //新增记录
{
HFProjectPlanId.Text = SQLHelper.GetNewID(typeof(Model.ActionPlan_ProjectPlan));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/ProjectPlanAttachUrl&menuId={1}&type={2}", HFProjectPlanId.Text, BLL.Const.OfficeProjectPlanMenuId, ContactImg)));
}
protected void btnapprove_Click(object sender, EventArgs e)
{
//HFConstructSolutionId.Text
var approve = ProjectPlanApproveService.GetProjectPlanApproveByApproveMan(HFProjectPlanId.Text, CurrUser.PersonId);
if (approve != null)
{
var approveId = approve.ProjectPlanApproveId;
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/ProjectPlanAttachUrl&menuId={2}",
0, approveId, Const.OfficeProjectPlanMenuId)));
}
}
#endregion
protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
{
this.divC.InnerHtml = string.Empty;
var getAtt = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == HFProjectPlanId.Text);
if (getAtt != null)
{
this.divC.InnerHtml = UploadAttachmentService.ShowAttachment("../../", getAtt.AttachUrl);
}
else
{
this.trAtt.Hidden = true;
}
}
public string man(Object man)
{
string appman = string.Empty;
if (Person_PersonsService.GetPerson_PersonsById(man.ToString()) != null)
{
appman = Person_PersonsService.GetPerson_PersonsById(man.ToString()).PersonName;
}
return appman;
}
protected void gvApprove_RowCommand(object sender, GridCommandEventArgs e)
{
object[] keys = gvApprove.DataKeys[e.RowIndex];
string fileId = string.Empty;
if (keys == null)
{
return;
}
else
{
fileId = keys[0].ToString();
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(
String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/ProjectPlanAttachUrl&menuId={2}",
-1, fileId, Const.OfficeProjectPlanMenuId)));
}
}
}