using HZQR.Common; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SRFB = SuperMap.RealEstate.FrameWork.Business; using WFSB = SuperMap.RealEstate.WorkFlow.Support.Business; namespace SuperMap.RealEstate.HighWay.Running { public partial class INITIATIONDOCUMENTSign : UserControl { Running.Business.HIGHWAYPROINST _HighWayProInst = null; protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page); this.ButtonVisible = false; //隐藏打印受理单按钮 ((IWorkFlowPage)Page).SetAcceptBillButton(false);//.SetAcceptBill("打印受理单", _Url); base.OnInit(e); } //载入数据 public override bool LoadData() { //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 CurrObject.AddSearchParameter("PROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); if (CurrObject.Search()) { BindObjectToControl(); if (CurrObject != null) { DOCUMENT_MAIN_DELIVERY.SelectedValue = CurrObject.I_DOCUMENT_MAIN_DELIVERY; DOCUMENT_SEND_DELIVERY.SelectedValue = CurrObject.I_DOCUMENT_SEND_DELIVERY; } } return true; } public override void InitializeWebControl() { //加载抄送人员 DOCUMENT_MAIN_DELIVERY.Items.Clear(); DOCUMENT_SEND_DELIVERY.Items.Clear(); SRFB.UserType _UserType = new SRFB.UserType(this.Transaction); _UserType.BindingDropDownList(DOCUMENT_MAIN_DELIVERY.Items, string.Empty); _UserType.BindingDropDownList(DOCUMENT_SEND_DELIVERY.Items, string.Empty); } #region 方法 -> 判断是会签组件 public static bool IsSignCom(ServiceModel.Transaction transaction, int nowActdefId) { bool NeedSign = false; WFSB.ActEntDef _ActEntDef = new WFSB.ActEntDef(transaction); _ActEntDef.AddSearchParameter("ACTDEF_ID", nowActdefId); if (_ActEntDef.Search()) { string sqlWhere = string.Format(@"WHERE COMPONENT_ID IN (SELECT COMPONENT_ID FROM WORKFLOW_SUPPORT.T_ACTCOMDEF WHERE ACTENTDEF_ID = {0} AND COMPONENT_TYPE = 2 ) AND COMPONENT_GUID IN ('521a8427-53df-4113-888f-7879e5c7c32b','aa655095-8ea6-495e-bef4-0edcb39b09ad')", _ActEntDef.ActEntDef_ID); if (new WFSB.Component(transaction).GetCount(sqlWhere) > 0) { NeedSign = true; } } return NeedSign; } #endregion #region 方法 -> 页面加载 //2020/07/27姚金杰修改,新增会签环节选择组件(隐藏显示),自动获取下一环节内码 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { return; } if (!string.IsNullOrEmpty(_HighWayProInst.ProInst.Division_Code.ToString())) { string _Division_Code = _HighWayProInst.ProInst.Division_Code.ToValue(); STAFF_UNIT_NAME.Text = DictionaryHelper.GetFieldEnumName("DIVISION_CODE", _Division_Code, Transaction); } if (ModifyType == ModifyTypeEnum.ReadOnly || ModifyType == ModifyTypeEnum.ReadOnlyVisible) { ButtonSave.Visible = false; } #region 绑定会签环节 ACTDEF_ID.Items.Clear(); if (ModifyType == ModifyTypeEnum.ReadOnly || ModifyType == ModifyTypeEnum.ReadOnlyVisible) { WorkFlow.Support.Business.ActDef _ActDef = new WFSB.ActDef(CurrObject); _ActDef.ActDef_ID = _HighWayProInst.ProInst.NowActInst.ActDef_ID; if (_ActDef.Select()) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _ActDef.ActDef_Name; _ListItemEx.Value = _ActDef.ActDef_ID.ToString(); ACTDEF_ID.Items.Add(_ListItemEx); } } else { foreach (WorkFlow.Support.Business.ActDef _ActDef in new WorkFlow.Support.Business.ActDef(CurrObject).FillCollection( "WHERE ACTDEF_ID IN (SELECT NEXTACTDEF_ID FROM WORKFLOW_SUPPORT.T_ROUTE WHERE ACTDEF_ID = " + _HighWayProInst.ProInst.NowActInst.ActDef_ID + ")")) { if (_ActDef.ActDef_Type.ToInt32() == 3020) { foreach (WFSB.ActDef _NextActDef in new WFSB.ActDef(CurrObject).FillCollection( "WHERE ACTDEF_ID IN (SELECT NEXTACTDEF_ID FROM WORKFLOW_SUPPORT.T_ROUTE WHERE ACTDEF_ID = " + _ActDef.ActDef_ID + ")")) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _NextActDef.ActDef_Name; _ListItemEx.Value = _NextActDef.ActDef_ID.ToString(); ACTDEF_ID.Items.Add(_ListItemEx); } } else { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _ActDef.ActDef_Name; _ListItemEx.Value = _ActDef.ActDef_ID.ToString(); ACTDEF_ID.Items.Add(_ListItemEx); } } } #endregion #region 绑定会签人员 if (!string.IsNullOrEmpty(ACTDEF_ID.SelectedValue)) { string strUserIds = string.Empty; Business.JOINTLYSIGN _JOINTLYSIGN = new Business.JOINTLYSIGN(Transaction); _JOINTLYSIGN.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); _JOINTLYSIGN.AddSearchParameter("ACTDEF_ID", ACTDEF_ID.SelectedValue); if (_JOINTLYSIGN.Search()) { strUserIds = _JOINTLYSIGN.USER_IDS; } UserIds.Clear(); foreach (DataRow _DataRow in _HighWayProInst.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_USER A WHERE EXISTS(SELECT 1 FROM WORKFLOW_SUPPORT.T_ROLE B,WORKFLOW_SUPPORT.T_USERROLE C WHERE A.USER_ID = C.USER_ID AND B.ROLE_ID = C.ROLE_ID AND B.ACTDEF_ID = " + ACTDEF_ID.SelectedValue + ") AND A.USER_CITYAUTHORITY LIKE '%" + _HighWayProInst.ProInst.Division_Code.ToValue() + "%'").Rows) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Text = _DataRow["USER_NAME"].ToString(); _ListItem.Value = _DataRow["USER_ID"].ToString(); UserIds.Items.Add(_ListItem); } UserIds.SelectedValue = strUserIds; } #endregion if (!_HighWayProInst.ProInst.NowActInst.ActInst_Name.StartsWith("公文下发")) { if (CurrObject.PropertyObject != null) { if (CurrObject.I_DOCUMENT_MAIN_DELIVERY != null) { DOCUMENT_MAIN_DELIVERY.SelectedValue = CurrObject.I_DOCUMENT_MAIN_DELIVERY; } if (CurrObject.I_DOCUMENT_MAIN_DELIVERY != null) { DOCUMENT_SEND_DELIVERY.SelectedValue = CurrObject.I_DOCUMENT_SEND_DELIVERY; } I_DOCUMENT_SUBJECT.ReadOnly = true; I_DOCUMENT_TITLE.ReadOnly = true; DOCUMENT_MAIN_DELIVERY.Enabled = false; DOCUMENT_SEND_DELIVERY.Enabled = false; I_DOCUMENT_CONTENT.ReadOnly = true; DOCUMENT_SEND_DELIVERY.Visible = false; DOCUMENT_MAIN_DELIVERY.Visible = false; DOCUMENT_MAIN_DELIVERY_text.Visible = true; DOCUMENT_SEND_DELIVERY_text.Visible = true; foreach (ListItemEx _ListItemEx in DOCUMENT_MAIN_DELIVERY.Items) { if (("," + CurrObject.I_DOCUMENT_MAIN_DELIVERY + ",").Contains(("," + _ListItemEx.Value + ","))) { DOCUMENT_MAIN_DELIVERY_text.Text += (DOCUMENT_MAIN_DELIVERY_text.Text == "" ? "" : ",") + _ListItemEx.Text; } if (("," + CurrObject.I_DOCUMENT_SEND_DELIVERY + ",").Contains(("," + _ListItemEx.Value + ","))) { DOCUMENT_SEND_DELIVERY_text.Text += (DOCUMENT_SEND_DELIVERY_text.Text == "" ? "" : ",") + _ListItemEx.Text; } } } } } #endregion public override void OnDataAction_BeforeSave(DataActionEventArgs e) { CurrObject.OPERATE_DATE = DateTime.Now; if (string.IsNullOrEmpty(UserIds.SelectedValue)) { throw new Exception("会签人员不能为空!"); } if (_HighWayProInst.ProInst.NowActInst.ActInst_Name.StartsWith("公文下发")) { e.CurrObject.STAFF_ID = this.Page.PassportInfo.ID; e.CurrObject.STAFF_NAME = this.Page.PassportInfo.Name; } e.CurrObject.PROINST_ID = _HighWayProInst.HIGHWAYPROINST_ID; if (!string.IsNullOrEmpty(DOCUMENT_MAIN_DELIVERY.SelectedValue)) { e.CurrObject.I_DOCUMENT_MAIN_DELIVERY = DOCUMENT_MAIN_DELIVERY.SelectedValue; } if (!string.IsNullOrEmpty(DOCUMENT_SEND_DELIVERY.SelectedValue)) { e.CurrObject.I_DOCUMENT_SEND_DELIVERY = DOCUMENT_SEND_DELIVERY.SelectedValue; } base.OnDataAction_BeforeSave(e); } //2020/07/27姚金杰修改,会签时若会签人员与上次不一致则删除之前会签意见,重新填写 public override void OnDataAction_AfterSave(DataActionEventArgs e) { bool signCom = IsSignCom(this.Transaction, _HighWayProInst.ProInst.NowActInst.ActDef_ID.Value); Business.JOINTLYSIGN _JOINTLYSIGN = new Business.JOINTLYSIGN(Transaction); _JOINTLYSIGN.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); //_JOINTLYSIGN.AddSearchParameter("TENDER_ID", e.CurrObject.INITIATION_DOCUMENT_ID); _JOINTLYSIGN.AddSearchParameter("ACTDEF_ID", ACTDEF_ID.SelectedValue); if (_JOINTLYSIGN.Search()) { string _USER_NAMES = ""; foreach (FrameWork.Business.User _User in new FrameWork.Business.User(CurrObject).FillCollection( "WHERE USER_ID IN (" + _JOINTLYSIGN.USER_IDS + ")")) { _USER_NAMES += (string.IsNullOrEmpty(_USER_NAMES) ? "" : ",") + _User.User_Name; } if (_JOINTLYSIGN.USER_IDS != UserIds.SelectedValue) { foreach (Running.Business.APPROVED _APPROVED in new Running.Business.APPROVED(CurrObject).FillCollection( "WHERE HIGHWAYPROINST_ID = " + _JOINTLYSIGN.HIGHWAYPROINST_ID + " AND APPROVED_TYPE = " + _JOINTLYSIGN.APPROVED_TYPE)) { _APPROVED.Delete(); } _JOINTLYSIGN.APPROVED_IDS = ""; } _JOINTLYSIGN.USER_IDS = UserIds.SelectedValue; _JOINTLYSIGN.ACTDEF_ID = ACTDEF_ID.SelectedValue.TryParseToInt(); _JOINTLYSIGN.USER_NAMES = _USER_NAMES; _JOINTLYSIGN.Update(); } else { _JOINTLYSIGN.ResetProperty(); _JOINTLYSIGN.HIGHWAYPROINST_ID = _HighWayProInst.HIGHWAYPROINST_ID; _JOINTLYSIGN.TENDER_ID = e.CurrObject.INITIATION_DOCUMENT_ID; _JOINTLYSIGN.ACTDEF_ID = ACTDEF_ID.SelectedValue.TryParseToInt(); _JOINTLYSIGN.USER_IDS = UserIds.SelectedValue; string _USER_NAMES = ""; foreach (FrameWork.Business.User _User in new FrameWork.Business.User(CurrObject).FillCollection( "WHERE USER_ID IN (" + _JOINTLYSIGN.USER_IDS + ")")) { _USER_NAMES += (string.IsNullOrEmpty(_USER_NAMES) ? "" : ",") + _User.User_Name; } _JOINTLYSIGN.USER_NAMES = _USER_NAMES; _JOINTLYSIGN.Insert(); } try { #region 更改业务名称 WorkFlow.Instance.Business.ProInst _ProInst = _HighWayProInst.ProInst; _ProInst.ProInst_Name = I_DOCUMENT_TITLE.Text; _ProInst.Update(); #endregion } catch (Exception ex) { } base.OnDataAction_AfterSave(e); } protected void ButtonSave_Click(object sender, EventArgs e) { try { base.Save(); Page.RefreshOpener(); Page.Alert("保存成功!", 3); } catch (Exception ex) { Transaction.Rollback(); Page.Alert(ex.Message); } } protected void ACTDEF_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { UserIds.Clear(); if (!string.IsNullOrEmpty(e.Argument)) { foreach (DataRow _DataRow in _HighWayProInst.ExecuteDataTable(@"SELECT * FROM PLATFORM_FRAMEWORK.T_USER A WHERE A.USER_STATUS = 1 AND EXISTS(SELECT 1 FROM WORKFLOW_SUPPORT.T_ROLE B,WORKFLOW_SUPPORT.T_USERROLE C WHERE A.USER_ID = C.USER_ID AND B.ROLE_ID = C.ROLE_ID AND B.ACTDEF_ID = " + ACTDEF_ID.SelectedValue + ")").Rows) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Text = _DataRow["USER_NAME"].ToString(); _ListItem.Value = _DataRow["USER_ID"].ToString(); UserIds.Items.Add(_ListItem); } e.SetDropDownListEx(UserIds); } } } }