using BLL; using FineUIPro.Web.ZHGL.SubPackManage; 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 SubPackChangeRequestEdit : PageBase { /// /// 主键 /// public string SubPackChangeRequestID { get { return (string)ViewState["SubPackChangeRequestID"]; } set { ViewState["SubPackChangeRequestID"] = value; } } /// /// 办理类型 /// public string State { get { return (string)ViewState["State"]; } set { ViewState["State"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { txtProjectName.Text = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName; this.SubPackChangeRequestID = Request.Params["SubPackChangeRequestID"]; BLL.SubPackChangeRequestService.DropSelectUnitWork(drpUnitWork, this.CurrUser.LoginProjectId, false); //审批信息 数据绑定 ListItem[] lis = new ListItem[1]; lis[0] = new ListItem("总包负责人审核", Const.SubPackChangeRequest_Submit); drpHandleType.DataValueField = "Value"; drpHandleType.DataTextField = "Text"; drpHandleType.DataSource = lis; drpHandleType.DataBind(); UserService.InitUserDropDownList(drpHandleMan, CurrUser.LoginProjectId, false, string.Empty); //判断是修改还是新增 if (!string.IsNullOrWhiteSpace(SubPackChangeRequestID)) { hdSubPackChangeRequestID.Text = SubPackChangeRequestID; var oneSubPackChangeRequest = Funs.DB.SubPack_ChangeRequest.FirstOrDefault(p => p.SubPackChangeRequestID == SubPackChangeRequestID); if (oneSubPackChangeRequest == null) { ShowNotify("修改的数据不存在,请检查", MessageBoxIcon.Error); return; } drpUnitWork.SelectedValue = oneSubPackChangeRequest.UnitWorkId; txtBidName.Text = oneSubPackChangeRequest.BidName; txtChangeReason.Text = oneSubPackChangeRequest.ChangeReason; var list = Funs.DB.SubPack_ChangeRequestDetail.Where(p => p.SubPackChangeRequestID == SubPackChangeRequestID).OrderBy(p => p.SortIndex).ToList(); this.gvProblem.DataSource = list; this.gvProblem.DataBind(); //新增情况下 审批控件的显示隐藏 if (oneSubPackChangeRequest.State == "1" && oneSubPackChangeRequest.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 (oneSubPackChangeRequest.State == "1" && oneSubPackChangeRequest.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 (oneSubPackChangeRequest.State == "0") { this.rblIsAgree.Hidden = true; this.txtOpinions.Hidden = true; this.btnSave.Hidden = false; this.btnSubmit.Hidden = false; } else if (oneSubPackChangeRequest.State == "2") { this.btnSave.Hidden = true; this.btnSubmit.Hidden = true; this.ContentPanel5.Hidden = true; } //分包审批流列表信息 var dt = SubPackChangeRequestApproveService.getListData(SubPackChangeRequestID); gvApprove.DataSource = dt; gvApprove.DataBind(); } else { txtBidName.Text = string.Empty; drpUnitWork.SelectedIndex = 0; //新增时默认添加五行 List list = new List(); for (int i = 0; i < 5; i++) { Model.SubPack_ChangeRequestDetail liaison = new Model.SubPack_ChangeRequestDetail { SubPackChangeRequestDetailID = SQLHelper.GetNewID(typeof(Model.SubPack_ChangeRequestDetail)) }; 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.SubPackChangeRequestMenuId, BLL.Const.BtnSave)) { string allMess = string.Empty; var list = gvProblemLs(); foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.SubPackChangeRequestName)) continue; if (!string.IsNullOrWhiteSpace(item.CorporateIDCard)) { if (string.IsNullOrWhiteSpace(allMess)) allMess = SubPackBlacklistService.GetMessAlert(item.CorporateIDCard, Const.SubPackBlackListTeamList); else allMess += SubPackBlacklistService.GetMessAlert(item.CorporateIDCard, Const.SubPackBlackListTeamList); } } if (!string.IsNullOrWhiteSpace(allMess)) { allMess += "是否继续操作?"; PageContext.RegisterStartupScript(Confirm.GetShowReference(allMess, String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(true, "btnSave_OK"), // 第一个参数 false 用来指定当前不是AJAX请求 PageManager1.GetCustomEventReference("btnSave_Cancel"))); return; } //保存失败时 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) { string allMess = string.Empty; var list = gvProblemLs(); foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.SubPackChangeRequestName)) continue; if (!string.IsNullOrWhiteSpace(item.CorporateIDCard)) { if (string.IsNullOrWhiteSpace(allMess)) allMess = SubPackBlacklistService.GetMessAlert(item.CorporateIDCard, Const.SubPackBlackListTeamList); else allMess += SubPackBlacklistService.GetMessAlert(item.CorporateIDCard, Const.SubPackBlackListTeamList); } } if (!string.IsNullOrWhiteSpace(allMess)) { allMess += "是否继续操作?"; PageContext.RegisterStartupScript(Confirm.GetShowReference(allMess, String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(true, "btnSubmit_OK"), // 第一个参数 false 用来指定当前不是AJAX请求 PageManager1.GetCustomEventReference("btnSubmit_Cancel"))); return; } //保存失败时 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_ChangeRequest newChangeRequest = new SubPack_ChangeRequest(); newChangeRequest.SubPackChangeRequestID = SubPackChangeRequestID; if (this.drpUnitWork.SelectedValue != Const._Null) newChangeRequest.UnitWorkId = drpUnitWork.SelectedValue; newChangeRequest.BidName = txtBidName.Text; newChangeRequest.ChangeReason = txtChangeReason.Text; var subPackTeamList = (from x in Funs.DB.View_SubPack_TeamList where x.ProjectId==this.CurrUser.LoginProjectId select new { x.SubPackTeamListDetailID, x.SubPackTeamListID, x.CorporateIDCard }); if (saveType == "submit") { //查询主表信息 Model.SubPack_ChangeRequest updateChangeRequest = Funs.DB.SubPack_ChangeRequest.FirstOrDefault(p => p.SubPackChangeRequestID == SubPackChangeRequestID); //明细信息 var list = gvProblemLs(); //过滤一遍数据 List newChangeRequestDetails = new List(); int rowIndex = 1; foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.SubPackChangeRequestName)) { rowIndex++; continue; } if (string.IsNullOrWhiteSpace(item.Corporate)) { Alert.ShowInTop($"第【{rowIndex}】行,请检查明细法人代表不能为空", MessageBoxIcon.Warning); return 0; } if (string.IsNullOrWhiteSpace(item.CorporateIDCard)) { Alert.ShowInTop($"第【{rowIndex}】行,请检查明细法人代表身份证不能为空", MessageBoxIcon.Warning); return 0; } if (newChangeRequestDetails.Where(p => p.CorporateIDCard.Trim() == item.CorporateIDCard.Trim()).Count() > 0) { Alert.ShowInTop($"第【{rowIndex}】行,此列表中劳务公司法人代表身份证号【{item.CorporateIDCard}】重复了使用,请检查!!!", MessageBoxIcon.Warning); return 0; } if (subPackTeamList.Where(p => p.SubPackTeamListDetailID != item.SubPackChangeRequestDetailID && p.CorporateIDCard == item.CorporateIDCard).Count() > 0) { Alert.ShowInTop($"第【{rowIndex}】行,此项目中劳务公司法人代表身份证号【{item.CorporateIDCard}】重复了使用,请检查!!!", MessageBoxIcon.Warning); return 0; } if (!IDCardValid.CheckIDCard(item.CorporateIDCard)) { Alert.ShowInTop($"第【{rowIndex}】行,身份证号码非法!", MessageBoxIcon.Warning); return 0; } newChangeRequestDetails.Add(item); rowIndex++; } if (newChangeRequestDetails.Count <= 0) { Alert.ShowInTop("请输入明细信息,下属劳务公司名称不能为空", MessageBoxIcon.Warning); return 0; } //如果没有查询到此数据先新增 再查询一次 bool addFalge = false; if (updateChangeRequest == null) { newChangeRequest.ProjectId = this.CurrUser.LoginProjectId; newChangeRequest.SubPackChangeRequestID = SQLHelper.GetNewID(typeof(Model.SubPack_ChangeRequest)); newChangeRequest.SubPackChangeRequestMan = this.CurrUser.UserId; newChangeRequest.SubPackChangeRequestDate = DateTime.Now; newChangeRequest.State = BLL.Const.SubPackChangeRequest_Write; newChangeRequest.IsSubmit = false; BLL.SubPackChangeRequestService.AddSubPackChangeRequest(newChangeRequest, newChangeRequestDetails); this.SubPackChangeRequestID = newChangeRequest.SubPackChangeRequestID; this.hdSubPackChangeRequestID.Text = this.SubPackChangeRequestID; updateChangeRequest = Funs.DB.SubPack_ChangeRequest.FirstOrDefault(p => p.SubPackChangeRequestID == SubPackChangeRequestID); addFalge = true; } Model.SubPack_ChangeRequestApprove approve = new SubPack_ChangeRequestApprove(); //在编辑状态提交 if (string.IsNullOrWhiteSpace(updateChangeRequest.State) || updateChangeRequest.State == "0") { updateChangeRequest.State = BLL.Const.SubPackChangeRequest_Submit; updateChangeRequest.SubmitMan = this.CurrUser.UserId; updateChangeRequest.SaveHandleMan = drpHandleMan.SelectedValue; updateChangeRequest.IsSubmit = true; approve.ApproveIdea = "提交"; approve.IsAgree = true; approve.ApproveType = Const.SubPackChangeRequest_Submit; } else if (updateChangeRequest.State == "1")//在提交之后审核 { if (!Convert.ToBoolean(this.rblIsAgree.SelectedValue) && string.IsNullOrWhiteSpace(txtOpinions.Text)) { Alert.ShowInTop("不同意,请输入你不同意的意见!!!", MessageBoxIcon.Warning); return 0; } //审核时选择同意单据状态改成审核完成 不同意将打回编辑状态 让编制人重新编制提交 if (Convert.ToBoolean(this.rblIsAgree.SelectedValue)) { updateChangeRequest.State = BLL.Const.SubPackChangeRequest_AuditCompleted; } else { updateChangeRequest.State = BLL.Const.SubPackChangeRequest_Write; updateChangeRequest.SubmitMan = null; newChangeRequest.IsSubmit = false; } updateChangeRequest.SaveHandleMan = null; approve.ApproveIdea = txtOpinions.Text; approve.IsAgree = Convert.ToBoolean(this.rblIsAgree.SelectedValue); approve.ApproveType = Const.SubPackChangeRequest_AuditCompleted; } updateChangeRequest.BidName = txtBidName.Text; updateChangeRequest.ChangeReason = txtChangeReason.Text; updateChangeRequest.UnitWorkId = drpUnitWork.SelectedValue; //减少对明细表的操作 if (addFalge) BLL.SubPackChangeRequestService.UpdateSubPackChangeRequest(updateChangeRequest); else BLL.SubPackChangeRequestService.UpdateSubPackChangeRequest(updateChangeRequest, newChangeRequestDetails); approve.SubPackChangeRequestID = updateChangeRequest.SubPackChangeRequestID; approve.ApproveMan = CurrUser.UserId; approve.ApproveDate = DateTime.Now; BLL.SubPackChangeRequestApproveService.AddChangeRequestApprove(approve); } else { Model.SubPack_ChangeRequest updateChangeRequest = Funs.DB.SubPack_ChangeRequest.FirstOrDefault(p => p.SubPackChangeRequestID == SubPackChangeRequestID); var list = gvProblemLs(); if (updateChangeRequest != null && !string.IsNullOrWhiteSpace(updateChangeRequest.State) && updateChangeRequest.State != "0") { Alert.ShowInTop("此分包数据已提交审核,不能再保存!!!", MessageBoxIcon.Warning); return 0; } //过滤一遍数据 List newChangeRequestDetails = new List(); int rowIndex = 1; foreach (var item in list) { if (string.IsNullOrWhiteSpace(item.SubPackChangeRequestName)) { rowIndex++; continue; } if (string.IsNullOrWhiteSpace(item.Corporate)) { Alert.ShowInTop($"第【{rowIndex}】行,请检查明细法人代表不能为空", MessageBoxIcon.Warning); return 0; } if (string.IsNullOrWhiteSpace(item.CorporateIDCard)) { Alert.ShowInTop($"第【{rowIndex}】行,请检查明细法人代表身份证不能为空", MessageBoxIcon.Warning); return 0; } if (newChangeRequestDetails.Where(p => p.CorporateIDCard.Trim() == item.CorporateIDCard.Trim()).Count() > 0) { Alert.ShowInTop($"第【{rowIndex}】行,此列表中劳务公司法人代表身份证号【{item.CorporateIDCard}】重复了使用,请检查!!!", MessageBoxIcon.Warning); return 0; } if (subPackTeamList.Where(p => p.SubPackTeamListDetailID != item.SubPackChangeRequestDetailID && p.CorporateIDCard == item.CorporateIDCard).Count() > 0) { Alert.ShowInTop($"第【{rowIndex}】行,此项目中劳务公司法人代表身份证号【{item.CorporateIDCard}】重复了使用,请检查!!!", MessageBoxIcon.Warning); return 0; } if (!IDCardValid.CheckIDCard(item.CorporateIDCard)) { Alert.ShowInTop($"第【{rowIndex}】行,身份证号码非法!", MessageBoxIcon.Warning); return 0; } newChangeRequestDetails.Add(item); rowIndex++; } if (newChangeRequestDetails.Count <= 0) { Alert.ShowInTop("请输入明细信息,下属劳务公司名称不能为空", MessageBoxIcon.Warning); return 0; } //新增 if (updateChangeRequest == null) { newChangeRequest.ProjectId = this.CurrUser.LoginProjectId; newChangeRequest.SubPackChangeRequestID = SQLHelper.GetNewID(typeof(Model.SubPack_ChangeRequest)); newChangeRequest.SubPackChangeRequestMan = this.CurrUser.UserId; newChangeRequest.SubPackChangeRequestDate = DateTime.Now; newChangeRequest.State = BLL.Const.SubPackChangeRequest_Write; newChangeRequest.IsSubmit = false; BLL.SubPackChangeRequestService.AddSubPackChangeRequest(newChangeRequest, newChangeRequestDetails); } else { updateChangeRequest.ProjectId = this.CurrUser.LoginProjectId; updateChangeRequest.UnitWorkId = newChangeRequest.UnitWorkId; updateChangeRequest.BidName = newChangeRequest.BidName; updateChangeRequest.ChangeReason = newChangeRequest.ChangeReason; newChangeRequest.State = Const.SubPackChangeRequest_Write; newChangeRequest.IsSubmit = false; BLL.SubPackChangeRequestService.UpdateSubPackChangeRequest(updateChangeRequest, newChangeRequestDetails); } } return 1; } /// /// 添加行 /// protected void btnProblemAdd_Click(object sender, EventArgs e) { var list = gvProblemLs(); Model.SubPack_ChangeRequestDetail liaison = new Model.SubPack_ChangeRequestDetail { SubPackChangeRequestDetailID = SQLHelper.GetNewID(typeof(Model.SubPack_ChangeRequestDetail)) }; 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.SubPackChangeRequestDetailID == 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_ChangeRequestDetail { SubPackChangeRequestDetailID = this.gvProblem.Rows[i].DataKeys[0].ToString(), SubPackChangeRequestID = this.SubPackChangeRequestID, OldBranchTeamListId = values.Value("OldBranchTeamListId"), OldSubPackChangeRequestName = values.Value("OldSubPackChangeRequestName"), SubPackChangeRequestName = values.Value("SubPackChangeRequestName"), ChargeContract = values.Value("ChargeContract"), LicenseNumber = values.Value("LicenseNumber"), AptitudeCertNumber = values.Value("AptitudeCertNumber"), EnrollAddress = values.Value("EnrollAddress"), AchievementCondition = values.Value("AchievementCondition"), FundCondition = values.Value("FundCondition"), Corporate = values.Value("Corporate"), CorporateIDCard = values.Value("CorporateIDCard"), Remark = values.Value("Remark"), SortIndex = i, }); } return liaisonLs; } protected string ConvertState(object state) { if (state != null) { if (state.ToString() == BLL.Const.SubPackChangeRequest_Submit) { return "编制提交"; } else if (state.ToString() == BLL.Const.SubPackChangeRequest_AuditCompleted) { return "总包负责人审批"; } else { return ""; } } return ""; } protected string ConvertAgree(object IsAgree) { if (IsAgree != null) { if (Convert.ToBoolean(IsAgree)) { return "同意"; } else { return "不同意"; } } return "不同意"; } protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) { if (e.EventArgument == "btnSave_OK") { //保存失败时 if (SaveDate("save") == 0) return; if (string.IsNullOrEmpty(Request.Params["Main"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { PageContext.RegisterStartupScript(String.Format("window.close();")); } } else if (e.EventArgument == "btnSave_Cancel") { // AJAX回发 ShowNotify("已取消保存!"); } else if (e.EventArgument == "btnSubmit_OK") { if (SaveDate("submit") == 0) return; if (string.IsNullOrEmpty(Request.Params["Main"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { PageContext.RegisterStartupScript(String.Format("window.close();")); } } else if (e.EventArgument == "btnSubmit_Cancel") { ShowNotify("已取消提交!"); } } } }