xinjiang/SGGL/FineUIPro.Web/SubPackManage/SubPackChangeRequestEdit.as...

609 lines
28 KiB
C#

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
{
/// <summary>
/// 主键
/// </summary>
public string SubPackChangeRequestID
{
get
{
return (string)ViewState["SubPackChangeRequestID"];
}
set
{
ViewState["SubPackChangeRequestID"] = value;
}
}
/// <summary>
/// 办理类型
/// </summary>
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<Model.SubPack_ChangeRequestDetail> list = new List<Model.SubPack_ChangeRequestDetail>();
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();"));
}
}
/// <summary>
/// 保存方法
/// </summary>
/// <param name="saveType"></param>
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<Model.SubPack_ChangeRequestDetail> newChangeRequestDetails = new List<SubPack_ChangeRequestDetail>();
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<Model.SubPack_ChangeRequestDetail> newChangeRequestDetails = new List<SubPack_ChangeRequestDetail>();
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;
}
/// <summary>
/// 添加行
/// </summary>
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();
}
/// <summary>
/// 行选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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);
}
}
/// <summary>
/// 劳务公司名单明细信息
/// </summary>
private List<Model.SubPack_ChangeRequestDetail> gvProblemLs()
{
List<Model.SubPack_ChangeRequestDetail> liaisonLs = new List<Model.SubPack_ChangeRequestDetail>();
JArray mergedData = gvProblem.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
liaisonLs.Add(new Model.SubPack_ChangeRequestDetail
{
SubPackChangeRequestDetailID = this.gvProblem.Rows[i].DataKeys[0].ToString(),
SubPackChangeRequestID = this.SubPackChangeRequestID,
OldBranchTeamListId = values.Value<string>("OldBranchTeamListId"),
OldSubPackChangeRequestName = values.Value<string>("OldSubPackChangeRequestName"),
SubPackChangeRequestName = values.Value<string>("SubPackChangeRequestName"),
ChargeContract = values.Value<string>("ChargeContract"),
LicenseNumber = values.Value<string>("LicenseNumber"),
AptitudeCertNumber = values.Value<string>("AptitudeCertNumber"),
EnrollAddress = values.Value<string>("EnrollAddress"),
AchievementCondition = values.Value<string>("AchievementCondition"),
FundCondition = values.Value<string>("FundCondition"),
Corporate = values.Value<string>("Corporate"),
CorporateIDCard = values.Value<string>("CorporateIDCard"),
Remark = values.Value<string>("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("已取消提交!");
}
}
}
}