using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.SubPackManage { public partial class SubPackTeamEvaluationEdit : PageBase { /// /// 主键 /// public string SubPackTeamEvaluationID { get { return (string)ViewState["SubPackTeamEvaluationID"]; } set { ViewState["SubPackTeamEvaluationID"] = value; } } /// /// 办理类型 /// public string State { get { return (string)ViewState["State"]; } set { ViewState["State"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { var oneProject = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); txtProjectCode.Text = oneProject.ProjectCode; txtProjectName.Text = oneProject.ProjectName; this.SubPackTeamEvaluationID = Request.Params["SubPackTeamEvaluationID"]; BLL.SubPackTeamListService.DropSelectUnitWork(drpUnitWork, this.CurrUser.LoginProjectId, false); //审批信息 数据绑定 ListItem[] lis = new ListItem[1]; lis[0] = new ListItem("总包负责人审核", Const.SubPackTeamEvaluation_Submit); drpHandleType.DataValueField = "Value"; drpHandleType.DataTextField = "Text"; drpHandleType.DataSource = lis; drpHandleType.DataBind(); UserService.InitUserDropDownList(drpHandleMan, CurrUser.LoginProjectId, false, string.Empty); //判断是修改还是新增 if (!string.IsNullOrWhiteSpace(SubPackTeamEvaluationID)) { hdSubPackTeamEvaluationID.Text = SubPackTeamEvaluationID; var oneSubPackTeamEvaluation = Funs.DB.SubPack_TeamEvaluation.FirstOrDefault(p => p.SubPackTeamEvaluationID == SubPackTeamEvaluationID); if (oneSubPackTeamEvaluation == null) { ShowNotify("修改的数据不存在,请检查", MessageBoxIcon.Error); return; } txtSubPackTeamEvaluationDate.Text = oneSubPackTeamEvaluation.SubPackTeamEvaluationDate.ToString(); var list = Funs.DB.SubPack_TeamEvaluationDetail.Where(p => p.SubPackTeamEvaluationID == SubPackTeamEvaluationID).OrderBy(p => p.SortIndex).ToList(); this.gvProblem.DataSource = list; this.gvProblem.DataBind(); //新增情况下 审批控件的显示隐藏 if (oneSubPackTeamEvaluation.State == "1" && oneSubPackTeamEvaluation.SaveHandleMan == CurrUser.UserId) { this.rblIsAgree.Hidden = false; this.txtOpinions.Hidden = false; this.btnSave.Hidden = true; this.btnSubmit.Hidden = false; this.drpHandleType.Hidden = true; this.drpHandleMan.Hidden = true; } else if (oneSubPackTeamEvaluation.State == "1" && oneSubPackTeamEvaluation.SaveHandleMan != CurrUser.UserId) { this.rblIsAgree.Hidden = false; this.txtOpinions.Hidden = false; this.btnSave.Hidden = true; this.btnSubmit.Hidden = true; this.drpHandleType.Hidden = true; this.drpHandleMan.Hidden = true; } else if (oneSubPackTeamEvaluation.State == "0") { this.rblIsAgree.Hidden = true; this.txtOpinions.Hidden = true; this.btnSave.Hidden = false; this.btnSubmit.Hidden = false; } else if (oneSubPackTeamEvaluation.State == "2") { this.btnSave.Hidden = true; this.btnSubmit.Hidden = true; this.ContentPanel5.Hidden = true; } //分包审批流列表信息 var dt = SubPackTeamEvaluationApproveService.getListData(SubPackTeamEvaluationID); gvApprove.DataSource = dt; gvApprove.DataBind(); } else { txtSubPackTeamEvaluationDate.Text = DateTime.Now.ToString("yyyy-MM-dd"); //新增时默认添加五行 List list = new List(); for (int i = 0; i < 5; i++) { Model.SubPack_TeamEvaluationDetail liaison = new Model.SubPack_TeamEvaluationDetail { SubPackTeamEvaluationDetailID = SQLHelper.GetNewID(typeof(Model.SubPack_TeamEvaluationDetail)), ManagerScore = 0, LaborPersonnelScore = 0, QualityScore = 0, SecurityScore = 0, TotalScore = 0, EvaluateLevel = "D", }; list.Add(liaison); } this.gvProblem.DataSource = list; this.gvProblem.DataBind(); //新增情况下 审批控件的显示隐藏 this.rblIsAgree.Hidden = true; this.txtOpinions.Hidden = true; } txtProjectName.Text = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName; } } protected void btnSave_Click(object sender, EventArgs e) { if (BLL.CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.SubPackTeamListMenuId, BLL.Const.BtnSave)) { //保存失败时 if (SaveDate("save") == 0) return; if (string.IsNullOrEmpty(Request.Params["Main"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { PageContext.RegisterStartupScript(String.Format("window.close();")); } } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } protected void btnSubmit_Click(object sender, EventArgs e) { //保存失败时 if (SaveDate("submit") == 0) return; if (string.IsNullOrEmpty(Request.Params["Main"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { PageContext.RegisterStartupScript(String.Format("window.close();")); } } /// /// 保存方法 /// /// private int SaveDate(string saveType) { Model.SubPack_TeamEvaluation newTeamEvaluation = new SubPack_TeamEvaluation(); newTeamEvaluation.SubPackTeamEvaluationID = SubPackTeamEvaluationID; if (string.IsNullOrWhiteSpace(txtSubPackTeamEvaluationDate.Text)) newTeamEvaluation.SubPackTeamEvaluationDate = null; else newTeamEvaluation.SubPackTeamEvaluationDate = Convert.ToDateTime(txtSubPackTeamEvaluationDate.Text); if (saveType == "submit") { //查询主表信息 Model.SubPack_TeamEvaluation updateTeamEvaluation = Funs.DB.SubPack_TeamEvaluation.FirstOrDefault(p => p.SubPackTeamEvaluationID == SubPackTeamEvaluationID); //明细信息 var list = gvProblemLs(); //过滤一遍数据 List newTeamEvaluationDetails = new List(); foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.UnitWorkId) || string.IsNullOrWhiteSpace(item.SubPackTeamListName) || string.IsNullOrWhiteSpace(item.BranchTeamListId)) continue; newTeamEvaluationDetails.Add(item); } if (newTeamEvaluationDetails.Count <= 0) { Alert.ShowInTop("请输入明细信息,下属劳务公司名称不能为空", MessageBoxIcon.Warning); return 0; } //如果没有查询到此数据先新增 再查询一次 bool addFalge = false; if (updateTeamEvaluation == null) { newTeamEvaluation.ProjectId = this.CurrUser.LoginProjectId; newTeamEvaluation.SubPackTeamEvaluationID = SQLHelper.GetNewID(typeof(Model.SubPack_TeamEvaluation)); newTeamEvaluation.SubPackTeamEvaluationMan = this.CurrUser.UserId; newTeamEvaluation.SubPackTeamEvaluationDate = DateTime.Now; newTeamEvaluation.State = BLL.Const.SubPackTeamEvaluation_Write; newTeamEvaluation.IsSubmit = false; BLL.SubPackTeamEvaluationService.AddSubPackTeamEvaluation(newTeamEvaluation, newTeamEvaluationDetails); this.SubPackTeamEvaluationID = newTeamEvaluation.SubPackTeamEvaluationID; this.hdSubPackTeamEvaluationID.Text = this.SubPackTeamEvaluationID; updateTeamEvaluation = Funs.DB.SubPack_TeamEvaluation.FirstOrDefault(p => p.SubPackTeamEvaluationID == SubPackTeamEvaluationID); addFalge = true; } Model.SubPack_TeamEvaluationApprove approve = new SubPack_TeamEvaluationApprove(); //在编辑状态提交 if (string.IsNullOrWhiteSpace(updateTeamEvaluation.State) || updateTeamEvaluation.State == "0") { updateTeamEvaluation.State = BLL.Const.SubPackTeamEvaluation_Submit; updateTeamEvaluation.SubmitMan = this.CurrUser.UserId; updateTeamEvaluation.SaveHandleMan = drpHandleMan.SelectedValue; updateTeamEvaluation.IsSubmit = true; approve.ApproveIdea = "提交"; approve.IsAgree = true; approve.ApproveType = Const.SubPackTeamEvaluation_Submit; } else if (updateTeamEvaluation.State == "1")//在提交之后审核 { if (!Convert.ToBoolean(this.rblIsAgree.SelectedValue) && string.IsNullOrWhiteSpace(txtOpinions.Text)) { Alert.ShowInTop("不同意,请输入你不同意的意见!!!", MessageBoxIcon.Warning); return 0; } //审核时选择同意单据状态改成审核完成 不同意将打回编辑状态 让编制人重新编制提交 if (Convert.ToBoolean(this.rblIsAgree.SelectedValue)) { updateTeamEvaluation.State = BLL.Const.SubPackTeamEvaluation_AuditCompleted; } else { updateTeamEvaluation.State = BLL.Const.SubPackTeamEvaluation_Write; updateTeamEvaluation.SubmitMan = null; newTeamEvaluation.IsSubmit = false; } updateTeamEvaluation.SaveHandleMan = null; approve.ApproveIdea = txtOpinions.Text; approve.IsAgree = Convert.ToBoolean(this.rblIsAgree.SelectedValue); approve.ApproveType = Const.SubPackTeamEvaluation_AuditCompleted; } updateTeamEvaluation.SubPackTeamEvaluationDate = newTeamEvaluation.SubPackTeamEvaluationDate; //减少对明细表的操作 if (addFalge) BLL.SubPackTeamEvaluationService.UpdateSubPackTeamEvaluation(updateTeamEvaluation); else BLL.SubPackTeamEvaluationService.UpdateSubPackTeamEvaluation(updateTeamEvaluation, newTeamEvaluationDetails); approve.SubPackTeamEvaluationID = updateTeamEvaluation.SubPackTeamEvaluationID; approve.ApproveMan = CurrUser.UserId; approve.ApproveDate = DateTime.Now; BLL.SubPackTeamEvaluationApproveService.AddTeamEvaluationApprove(approve); } else { Model.SubPack_TeamEvaluation updateTeamEvaluation = Funs.DB.SubPack_TeamEvaluation.FirstOrDefault(p => p.SubPackTeamEvaluationID == SubPackTeamEvaluationID); var list = gvProblemLs(); if (updateTeamEvaluation != null && !string.IsNullOrWhiteSpace(updateTeamEvaluation.State) && updateTeamEvaluation.State != "0") { Alert.ShowInTop("此分包数据已提交审核,不能再保存!!!", MessageBoxIcon.Warning); return 0; } //过滤一遍数据 List newTeamEvaluationDetails = new List(); foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.UnitWorkId)|| string.IsNullOrWhiteSpace(item.SubPackTeamListName) || string.IsNullOrWhiteSpace(item.BranchTeamListId)) continue; newTeamEvaluationDetails.Add(item); } if (newTeamEvaluationDetails.Count <= 0) { Alert.ShowInTop("请输入明细信息,下属劳务公司名称不能为空", MessageBoxIcon.Warning); return 0; } //新增 if (updateTeamEvaluation == null) { newTeamEvaluation.ProjectId = this.CurrUser.LoginProjectId; newTeamEvaluation.SubPackTeamEvaluationID = SQLHelper.GetNewID(typeof(Model.SubPack_TeamEvaluation)); newTeamEvaluation.SubPackTeamEvaluationMan = this.CurrUser.UserId; newTeamEvaluation.SubPackTeamEvaluationDate = DateTime.Now; newTeamEvaluation.State = BLL.Const.SubPackTeamEvaluation_Write; newTeamEvaluation.IsSubmit = false; BLL.SubPackTeamEvaluationService.AddSubPackTeamEvaluation(newTeamEvaluation, newTeamEvaluationDetails); } else { updateTeamEvaluation.ProjectId = this.CurrUser.LoginProjectId; updateTeamEvaluation.SubPackTeamEvaluationDate = newTeamEvaluation.SubPackTeamEvaluationDate; updateTeamEvaluation.State = Const.SubPackTeamEvaluation_Write; updateTeamEvaluation.IsSubmit = false; BLL.SubPackTeamEvaluationService.UpdateSubPackTeamEvaluation(updateTeamEvaluation, newTeamEvaluationDetails); } } return 1; } /// /// 添加行 /// protected void btnProblemAdd_Click(object sender, EventArgs e) { var list = gvProblemLs(); Model.SubPack_TeamEvaluationDetail liaison = new Model.SubPack_TeamEvaluationDetail { SubPackTeamEvaluationDetailID = SQLHelper.GetNewID(typeof(Model.SubPack_TeamEvaluationDetail)), ManagerScore = 0, LaborPersonnelScore = 0, QualityScore = 0, SecurityScore = 0, TotalScore = 0, EvaluateLevel="D", }; list.Add(liaison); this.gvProblem.DataSource = list; this.gvProblem.DataBind(); } /// /// 行选择 /// /// /// protected void gvProblem_RowCommand(object sender, GridCommandEventArgs e) { var problemLs = gvProblemLs(); string rowID = this.gvProblem.DataKeys[e.RowIndex][0].ToString(); if (e.CommandName == "Delete") { foreach (var item in problemLs) { if (item.SubPackTeamEvaluationDetailID == rowID) { problemLs.Remove(item); break; } } gvProblem.DataSource = problemLs; gvProblem.DataBind(); ShowNotify("删除数据成功!", MessageBoxIcon.Success); } } /// /// 劳务公司名单明细信息 /// private List gvProblemLs() { List liaisonLs = new List(); JArray mergedData = gvProblem.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int i = mergedRow.Value("index"); liaisonLs.Add(new Model.SubPack_TeamEvaluationDetail { SubPackTeamEvaluationDetailID = this.gvProblem.Rows[i].DataKeys[0].ToString(), SubPackTeamEvaluationID = this.SubPackTeamEvaluationID, UnitWorkId = values.Value("UnitWorkId"), BranchTeamListId = values.Value("BranchTeamListId"), SubPackTeamListName = values.Value("SubPackTeamListName"), ChargeContract = values.Value("ChargeContract"), LicenseNumber = values.Value("LicenseNumber"), AptitudeCertNumber = values.Value("AptitudeCertNumber"), EnrollAddress = values.Value("EnrollAddress"), HeadAndTelephone = values.Value("HeadAndTelephone"), ManagerScore = values.Value("ManagerScore") == "" ? 0m : values.Value("ManagerScore"), LaborPersonnelScore = values.Value("LaborPersonnelScore")==""? 0m: values.Value("LaborPersonnelScore"), QualityScore = values.Value("QualityScore")==""? 0m : values.Value("QualityScore"), SecurityScore = values.Value("SecurityScore")==""?0m : values.Value("SecurityScore"), TotalScore = values.Value("TotalScore") == "" ? 0m : values.Value("TotalScore"), EvaluateLevel = values.Value("EvaluateLevel"), Remark = values.Value("Remark"), SortIndex = i, }); } return liaisonLs; } protected string ConvertState(object state) { if (state != null) { if (state.ToString() == BLL.Const.SubPackTeamEvaluation_Submit) { return "编制提交"; } else if (state.ToString() == BLL.Const.SubPackTeamEvaluation_AuditCompleted) { return "总包负责人审批"; } else { return ""; } } return ""; } protected string ConvertAgree(object IsAgree) { if (IsAgree != null) { if (Convert.ToBoolean(IsAgree)) { return "同意"; } else { return "不同意"; } } return "不同意"; } } }