323 lines
15 KiB
C#
323 lines
15 KiB
C#
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<Business.INITIATION_DOCUMENT>
|
||
{
|
||
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<Business.INITIATION_DOCUMENT> 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<Business.INITIATION_DOCUMENT> 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);
|
||
}
|
||
}
|
||
}
|
||
} |