using System; using System.Data; using System.Linq; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; using SuperMap.RealEstate.Enums; using SuperMap.RealEstate.Web.Utility; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.WorkFlow; using Support = SuperMap.RealEstate.WorkFlow.Support.Business; using Instance = SuperMap.RealEstate.WorkFlow.Instance.Business; using RunningBusiness = SuperMap.RealEstate.SaleStore.Running.Business; using WFIA = SuperMap.RealEstate.WorkFlow.Instance.Business; namespace SuperMap.RealEstate.SaleStore.Storage.Compents { public partial class Default : SuperMap.RealEstate.Web.UI.PageModule { #region 方法 -> 页面加载事件 protected void Page_Load(object sender, EventArgs e) { //if (string.IsNullOrWhiteSpace(PassportInfo.ProvinceCode)) //{ // //获取平台账号关联手机号码、省份编码、业主单位 // DataTable UserTable = new FrameWork.Business.User(Transaction).ExecuteDataTable( // "SELECT USER_MOBILEPHONE,USER_PROVINCE,PROVINCE_UNIT FROM T_USER WHERE User_ID = " + PassportInfo.ID); // if (UserTable.Rows.Count > 0) // { // PassportInfo.ProvinceUnit = UserTable.Rows[0]["PROVINCE_UNIT"].ToString(); // PassportInfo.UserMobilephone = UserTable.Rows[0]["USER_MOBILEPHONE"].ToString(); // PassportInfo.ProvinceCode = UserTable.Rows[0]["USER_PROVINCE"].ToString(); // } //} //if (PassportInfo.ProvinceCode == "510000") //{ // if ((DateTime.Now.Hour >= 10 && DateTime.Now.Hour < 12) || // (DateTime.Now.Hour >= 14 && DateTime.Now.Hour < 17)) // { // Response.Write(""); // Response.Write(@" //
// 目前应用程序使用人数较多...系统繁忙...请在空闲时重试! //
"); // Response.End(); // return; // } //} if (IsPostBack) return; BindDropDownList_SERVERPART(); #region 业务类型下拉列表 OPERATION_TYPE.Items.Clear(); DataSet _DataSet = new DataSet(); if (Request["DataType"] == "List" && !string.IsNullOrEmpty(Request["Operation_Type"])) { FieldExplain _FieldExplain = DictionaryHelper.GetFieldExplain("OPERATION_TYPE", Transaction); FieldEnum _FieldEnum = new FieldEnum(Transaction); _FieldEnum.AddSearchParameter("FieldExplain_ID", _FieldExplain.FieldExplain_ID); _FieldEnum.AddSearchParameter("FieldEnum_Value", Request["Operation_Type"]); if (_FieldEnum.Search()) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = _FieldEnum.FieldEnum_Name; _ListItemEx.Value = _FieldEnum.FieldEnum_Value; _ListItemEx.Level = 0; OPERATION_TYPE.Items.Add(_ListItemEx); foreach (FieldEnum OperationType in _FieldEnum.FillCollection("Where FieldEnum_Pid = " + _FieldEnum.FieldEnum_ID + " ORDER BY FieldEnum_Index,FieldEnum_Value")) { _ListItemEx = new ListItemEx(); _ListItemEx.Text = OperationType.FieldEnum_Name; _ListItemEx.Value = OperationType.FieldEnum_Value; _ListItemEx.Level = 1; OPERATION_TYPE.Items.Add(_ListItemEx); } } Support.ProDefType _ProDefType = new Support.ProDefType(Transaction); //获取所有的分类节点 DataTable _DataTableType = _ProDefType.FillDataTable("order by ProDefType_PID,ProDefType_Index,ProDefType_ID"); //按照权限来过滤节点 string _SQLStr = @"Select A.* From V_ListAccept A,PlatForm_Dictionary.V_FieldEnum B,PlatForm_Dictionary.T_FieldEnum C Where A.User_ID = " + PassportInfo.ID + " And B.FieldExplain_Field = 'OPERATION_TYPE' And C.FieldEnum_Value = '" + Request["Operation_Type"] + "' And A.Operation_Type = B.FieldEnum_Value And B.FieldEnum_Pid = C.FieldEnum_ID"; DataTable _DataTableUser = _ProDefType.ExecuteDataTable(_SQLStr); _DataSet.Tables.Add(_DataTableType.Copy()); _DataSet.Tables.Add(_DataTableUser.Copy()); _DataSet.AcceptChanges(); } else { OPERATION_TYPE.Items.Add(new Web.UI.WebControls.ListItemEx() { Text = "全部", Value = "-1" }); DictionaryHelper.BindingDropDownList("Operation_Type", OPERATION_TYPE.Items, Transaction); if (!string.IsNullOrEmpty(Request["Operation_Type"])) { OPERATION_TYPE.Value = Request["Operation_Type"]; OPERATION_TYPE.Enabled = false; } _DataSet = SupportHelper.GetAcceptDataSet(PassportInfo.ID.ToString(), OPERATION_TYPE.Value, this.Transaction); } #endregion //绑定业务流程树 if (_DataSet.Tables[1].Rows.Count == 1) { LayoutButtonAccept.Visible = false; CallBackButtonAccept.Attributes["key"] = _DataSet.Tables[1].Rows[0]["ProDef_ID"].ToEncrypt() + "&Module_ID=" + this.ModuleInfo.ID.Value.ToEncrypt() + NewMethod(_DataSet.Tables[1].Rows[0]["Enabled_Division"].ToString()); CallBackButtonAccept.OnClientClick = "return WorkFlowPlatform_Accept(event,this);"; } else { LayoutButtonAccept.Visible = _DataSet.Tables[1].Rows.Count > 0; CallBackButtonAccept.Visible = false; TreeViewBinding("-1", MyTreeView.Nodes, _DataSet); } //所有城区权限时,不在显示 //Division_Code.Visible = PassportInfo.EnabledCityAuthority; //加载列表数据 BindGridVew(); // BindGridViewHeadText(); //设置回车焦点按钮 SetControlClientAction(ButtonSearch); } /// /// 返回业务流程服务区编码 /// /// /// private string NewMethod(string Enabled_Division) { if (Enabled_Division == "1") { return "&Enabled_Division=" + Division_Code.ClientID; } return ""; } #region 设置页面模块guid protected override void OnInit(EventArgs e) { if (Request["Module_ID"] != null) { this.AddModule_Guid(Guid.Empty.ToString()); } this.AddModule_Guid("45ca39de-5de5-465f-9718-969e16023711"); base.OnInit(e); } #endregion #region 绑定服务区下拉框 public void BindDropDownList_SERVERPART() { //加载服务区 Business.CommonHelper.BindServerPart(Transaction, SERVERPART_ID, "所有服务区", "1=1", "1=1", PassportInfo.CityAuthority, "1000,1001"); //绑定业务所在区域 Division_Code.Items.Clear(); Division_Code.Items.Add(new ListItemEx("全部", "-1")); Division_Code.Items.Add(new ListItemEx("非区域流程", "0") { Level = 1 }); DictionaryHelper.BindingDivisionCode(PassportInfo, Division_Code.Items, this.Transaction); } #endregion #region 绑定业务流程树 string _NavigateElement = " {1}"; private void TreeViewBinding(string pid, TreeNodeCollection Nodes, DataSet dataSet) { var pairCollection1 = from m in dataSet.Tables[0].Select("ProDefType_PID=" + pid) select new TreeNode() { Text = " " + m["ProDefType_Name"].ToString(), Value = m["ProDefType_ID"].ToString(), NavigateUrl = "javascript:void(0);", ImageUrl = TreeNodeImageUrl.BusinessSystem }; foreach (var pair1 in pairCollection1) { TreeViewBinding(pair1.Value, pair1.ChildNodes, dataSet); var pairCollection2 = from m in dataSet.Tables[1].Select("ProDefType_ID=" + pair1.Value) select new TreeNode() { Text = string.Format(_NavigateElement, m["ProDef_ID"].ToEncrypt() + "&Module_ID=" + this.ModuleInfo.ID.Value.ToEncrypt() + NewMethod(m["Enabled_Division"].ToString()), m["ProDef_Name"].ToString()), Value = m["ProDef_ID"].ToString(), NavigateUrl = "javascript:void(0);", ImageUrl = TreeNodeImageUrl.Module }; foreach (var pair2 in pairCollection2) { pair1.ChildNodes.Add(pair2); } if (pair1.ChildNodes.Count > 0) { Nodes.Add(pair1); } } } #endregion #endregion #region 方法 -> 加载列表数据 private void BindGridVew() { //加载列表 BindGridViewHeadText(); GetData(); } #region 方法 -> 绑定表头名称 private void BindGridViewHeadText() { switch (Request["Operation_Type"]) { case "200100": GridViewEx1.Columns[2].HeaderText = "领用门店"; GridViewEx1.Columns[3].Visible = false; GridViewEx1.Columns[4].Visible = false; GridViewEx1.Columns[5].HeaderText = "领用说明"; GridViewEx1.Columns[6].HeaderText = "领用数量"; GridViewEx1.DataTableName = "SALESTORE_RUNNING.V_SSP_RECEIVE"; break; case "200200": GridViewEx1.Columns[0].HeaderText = "调出服务区"; GridViewEx1.Columns[2].HeaderText = "调出门店"; GridViewEx1.Columns[3].Visible = true; GridViewEx1.Columns[4].Visible = true; GridViewEx1.Columns[5].HeaderText = "调货说明"; GridViewEx1.Columns[6].HeaderText = "调货数量"; GridViewEx1.DataTableName = "SALESTORE_RUNNING.V_SSP_TRANSFER"; break; case "200300": GridViewEx1.Columns[2].HeaderText = "退货门店"; GridViewEx1.Columns[3].Visible = false; GridViewEx1.Columns[4].Visible = false; GridViewEx1.Columns[5].HeaderText = "退货说明"; GridViewEx1.Columns[6].HeaderText = "退货数量"; GridViewEx1.DataTableName = "SALESTORE_RUNNING.V_SSP_BACK"; break; } } #endregion #region 获取列表数据 public void GetData() { #region 拼接查询条件 string dataWhere = "";//数据查询条件 string workWhere = "";//工作流查询条件 if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue) && SERVERPART_ID.SelectedValue != "1=1") { dataWhere = "SERVERPART_ID = " + SERVERPART_ID.SelectedValue; } if (!string.IsNullOrEmpty(COMMODITY_NAME.Text.Trim())) { dataWhere += (dataWhere == "" ? "" : " AND ") + "EXISTS (SELECT 1 FROM SALESTORE_RUNNING.V_SALESTOREPROINST_COMMODITY WHERE (COMMODITY_NAME LIKE '%" + COMMODITY_NAME.Text.Trim() + "%' OR COMMODITY_BARCODE LIKE '%" + COMMODITY_NAME.Text.Trim() + "%') AND SALESTORE_RUNNING.V_SALESTOREPROINST_COMMODITY.SALESTOREPROINST_ID = " + GridViewEx1.DataTableName + ".SALESTOREPROINST_ID)"; } workWhere = " WHERE USER_ID=" + PassportInfo.ID + " AND OPERATION_TYPE=" + Request["Operation_Type"]; dataWhere = dataWhere == "" ? "" : " WHERE " + dataWhere; #endregion #region 查询数据 DataTable dtData = new RunningBusiness.APPROVED(Transaction).ExecuteDataTable( "SELECT * FROM " + GridViewEx1.DataTableName + dataWhere); DataTable dtWork = new WFIA.Approved(Transaction).ExecuteDataTable( "SELECT * FROM WORKFLOW_INSTANCE.V_SALESTOREPROINST_WORKFLOW" + workWhere); #endregion #region 业务数据与工作流联合查询 if (dtWork.Rows.Count == 0 || dtData.Rows.Count == 0) { GridPageEx1.RecordCount = 0; GridViewEx1.DataSource = new DataTable(); GridViewEx1.DataBind(); } else { var query = dtData.AsEnumerable(). Join(dtWork.AsEnumerable(), d => d.Field("REPROINST_ID"), w => w.Field("PROINST_ID"), (d, w) => new { d, w }). GroupBy(data => new { SALESTOREPROINST_ID = data.d.Field("SALESTOREPROINST_ID"), PROINST_DESC = data.d.Field("PROINST_DESC"), STAFF_NAME = data.d.Field("STAFF_NAME"), SERVERPART_ID = data.d.Field("SERVERPART_ID"), SERVERPART_NAME = data.d.Field("SERVERPART_NAME"), TARGETSERVERPART_NAME = data.d.Field("TARGETSERVERPART_NAME"), TARGETSHOP_NAME = data.d.Field("TARGETSHOP_NAME"), SHOPNAME = data.d.Field("SHOPNAME"), BACK_COUNT = data.d.Field("BACK_COUNT"), BACKTAXPRICE = data.d.Field("BACKTAXPRICE"), BACKPRICE = data.d.Field("BACKPRICE"), BACK_SELLTAXPRICE = data.d.Field("BACK_SELLTAXPRICE"), BACK_SELLPRICE = data.d.Field("BACK_SELLPRICE"), PROINST_ID = data.w.Field("PROINST_ID"), PRODEF_ID = data.w.Field("PRODEF_ID"), PRODEF_NAME = data.w.Field("PRODEF_NAME"), TRANSACTION_TYPE = data.w.Field("TRANSACTION_TYPE"), OPERATION_TYPE = data.w.Field("OPERATION_TYPE"), PROINST_CODE = data.w.Field("PROINST_CODE"), PROINST_NAME = data.w.Field("PROINST_NAME"), PROINST_TYPE = data.w.Field("PROINST_TYPE"), PROINST_STATE = data.w.Field("PROINST_STATE"), DEPARTMENT_CODE = data.w.Field("DEPARTMENT_CODE"), DEPARTMENT_NAME = data.w.Field("DEPARTMENT_NAME"), PROINST_STARTDATE = data.w.Field("PROINST_STARTDATE"), PROINST_ENDDATE = data.w.Field("PROINST_ENDDATE"), PROINST_FINISHDATE = data.w.Field("PROINST_FINISHDATE"), DATA_PUTINSTORAGE = data.w.Field("DATA_PUTINSTORAGE"), APPRIZE_TYPE = data.w.Field("APPRIZE_TYPE"), APPRIZE_VALUE = data.w.Field("APPRIZE_VALUE"), ENABLED_LINKMAN = data.w.Field("ENABLED_LINKMAN"), ENABLED_MATERIAL = data.w.Field("ENABLED_MATERIAL"), ENABLED_CONSIGNOR = data.w.Field("ENABLED_CONSIGNOR"), ENABLED_STATISTICS = data.w.Field("ENABLED_STATISTICS"), DIVISION_CODE = data.w.Field("DIVISION_CODE"), ENABLED_ARCHIVES = data.w.Field("ENABLED_ARCHIVES"), ENABLED_DIVISION = data.w.Field("ENABLED_DIVISION"), ENABLED_PROPOSER = data.w.Field("ENABLED_PROPOSER"), PROINST_KEYVALUE = data.w.Field("PROINST_KEYVALUE"), ACTINST_ID = data.w.Field("ACTINST_ID"), NOWACTINST_ID = data.w.Field("NOWACTINST_ID"), USER_ID = data.w.Field("USER_ID"), USER_NAME = data.w.Field("USER_NAME"), ACTINST_STARTDATE = data.w.Field("ACTINST_STARTDATE"), ACTINST_STATE = data.w.Field("ACTINST_STATE") }).Select(result => new { SALESTOREPROINST_ID = result.Key.SALESTOREPROINST_ID, PROINST_DESC = result.Key.PROINST_DESC, STAFF_NAME = result.Key.STAFF_NAME, SERVERPART_ID = result.Key.SERVERPART_ID, SERVERPART_NAME = result.Key.SERVERPART_NAME, TARGETSERVERPART_NAME = result.Key.TARGETSERVERPART_NAME, TARGETSHOP_NAME = result.Key.TARGETSHOP_NAME, SHOPNAME = result.Key.SHOPNAME, BACK_COUNT = result.Key.BACK_COUNT, BACKTAXPRICE = result.Key.BACKTAXPRICE, BACKPRICE = result.Key.BACKPRICE, BACK_SELLTAXPRICE = result.Key.BACK_SELLTAXPRICE, BACK_SELLPRICE = result.Key.BACK_SELLPRICE, PROINST_ID = result.Key.PROINST_ID, PRODEF_ID = result.Key.PRODEF_ID, PRODEF_NAME = result.Key.PRODEF_NAME, TRANSACTION_TYPE = result.Key.TRANSACTION_TYPE, OPERATION_TYPE = result.Key.OPERATION_TYPE, PROINST_CODE = result.Key.PROINST_CODE, PROINST_NAME = result.Key.PROINST_NAME, PROINST_TYPE = result.Key.PROINST_TYPE, PROINST_STATE = result.Key.PROINST_STATE, DEPARTMENT_CODE = result.Key.DEPARTMENT_CODE, DEPARTMENT_NAME = result.Key.DEPARTMENT_NAME, PROINST_STARTDATE = result.Key.PROINST_STARTDATE, PROINST_ENDDATE = result.Key.PROINST_ENDDATE, PROINST_FINISHDATE = result.Key.PROINST_FINISHDATE, DATA_PUTINSTORAGE = result.Key.DATA_PUTINSTORAGE, APPRIZE_TYPE = result.Key.APPRIZE_TYPE, APPRIZE_VALUE = result.Key.APPRIZE_VALUE, ENABLED_LINKMAN = result.Key.ENABLED_LINKMAN, ENABLED_MATERIAL = result.Key.ENABLED_MATERIAL, ENABLED_CONSIGNOR = result.Key.ENABLED_CONSIGNOR, ENABLED_STATISTICS = result.Key.ENABLED_STATISTICS, DIVISION_CODE = result.Key.DIVISION_CODE, ENABLED_ARCHIVES = result.Key.ENABLED_ARCHIVES, ENABLED_DIVISION = result.Key.ENABLED_DIVISION, ENABLED_PROPOSER = result.Key.ENABLED_PROPOSER, PROINST_KEYVALUE = result.Key.PROINST_KEYVALUE, ACTINST_ID = result.Key.ACTINST_ID, NOWACTINST_ID = result.Key.NOWACTINST_ID, USER_ID = result.Key.USER_ID, USER_NAME = result.Key.USER_NAME, ACTINST_STARTDATE = result.Key.ACTINST_STARTDATE, ACTINST_STATE = result.Key.ACTINST_STATE }).OrderByDescending(o => o.ACTINST_STARTDATE); //获取当前页码,显示条数,分页展示数据 int nPageInde = 0, _RN = 0; if (GridPageEx1.CurrentPageIndex < 0) { nPageInde = 0; } else { nPageInde = GridPageEx1.CurrentPageIndex; } _RN = nPageInde * GridPageEx1.PageSize; GridPageEx1.RecordCount = query.Count(); GridViewEx1.DataSource = query.Skip(_RN).Take(GridPageEx1.PageSize); GridViewEx1.DataBind(); } #endregion } #endregion #endregion #region 方法 -> 查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { Business.CommonHelper.RecordOperateLog(Transaction, "", Request["Module_ID"], PassportInfo.ID, PassportInfo.Name, "执行“查询按钮”操作"); GetData(); e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } #endregion #region 方法 -> 翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { Business.CommonHelper.RecordOperateLog(Transaction, "", Request["Module_ID"], PassportInfo.ID, PassportInfo.Name, "执行“翻页按钮”操作"); GetData(); e.SetValue(GridViewEx1); } #endregion #region 方法 -> 查询SQL设置 public string sqlWhere = string.Empty; protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { ////搜索选项的搜索条件过滤 //if (!string.IsNullOrEmpty(TextBox_Search.Text)) // e.AddOrParams(GridViewSearch1, TextBox_Search.Text); ////且搜索条件 //e.AddAndParams("USER_ID", PassportInfo.ID); //if (OPERATION_TYPE.SelectedValue != "" && OPERATION_TYPE.SelectedValue != "1=1") //{ // e.AddAndParams("OPERATION_TYPE", OPERATION_TYPE.SelectedValue); //} //if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue) && SERVERPART_ID.SelectedValue != "1=1") //{ // e.SetOtherUserCustomWhereSqlString = "SERVERPART_ID = " + SERVERPART_ID.SelectedValue; //} ////else ////{ //// e.SetOtherUserCustomWhereSqlString = "SERVERPART_ID IN (" + //// new HWSB.SERVERPART(Transaction).GetPassportServerPartID(PassportInfo.CityAuthority) + ")"; ////} //if (!string.IsNullOrEmpty(COMMODITY_NAME.Text.Trim())) //{ // e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + // "EXISTS (SELECT 1 FROM SALESTORE_RUNNING.V_SALESTOREPROINST_COMMODITY WHERE (COMMODITY_NAME LIKE '%" + // COMMODITY_NAME.Text.Trim() + "%' OR COMMODITY_BARCODE LIKE '%" + COMMODITY_NAME.Text.Trim() + // "%') AND SALESTORE_RUNNING.V_SALESTOREPROINST_COMMODITY.SALESTOREPROINST_ID = " + // GridViewEx1.DataTableName + ".SALESTOREPROINST_ID)"; //} //e.AddOrderByParams("ACTINST_STARTDATE", true); } #endregion #region 方法 -> 行绑定事件 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string _STAFF_NAME = GridViewEx1.DataKeys[e.Row.RowIndex]["STAFF_NAME"] == null ? "" : GridViewEx1.DataKeys[e.Row.RowIndex]["STAFF_NAME"].ToString(); string _ProInst_ID = GridViewEx1.DataKeys[e.Row.RowIndex]["ProInst_ID"].ToEncrypt(); string _NowActInst_ID = GridViewEx1.DataKeys[e.Row.RowIndex]["NowActInst_ID"].ToEncrypt(); string _DataKeyValue = GridViewEx1.DataKeys[e.Row.RowIndex]["ActInst_State"] == null ? "" : GridViewEx1.DataKeys[e.Row.RowIndex]["ActInst_State"].ToString(); e.Row.Cells[5].Text = _STAFF_NAME + ":" + e.Row.Cells[5].Text; e.Row.Attributes.Add("ondblclick", "return WorkFlowPlatform_Transact(event,\"?NowActInst_ID=" + _NowActInst_ID + "&Module_ID=" + Request["Module_ID"] + "&ProInst_ID=" + _ProInst_ID + "\",false);"); if (!String.IsNullOrEmpty(_DataKeyValue)) { Enums.ActInstState _ActInstState = EnumHelper.Parse(_DataKeyValue); switch (_ActInstState) { case ActInstState.Normal: break; case ActInstState.OverRule: FixProInstCode(e.Row, e.Row.Cells.Count - 5, "退", "red"); break; case ActInstState.TurnOver: FixProInstCode(e.Row, e.Row.Cells.Count - 5, "移", "red"); break; } } } } #region 设置列表文本内容样式 private void FixProInstCode(GridViewRow Row, int index, string value, string color = "#ff5c00") { Row.Cells[index].Text = "[" + value + "] " + Row.Cells[index].Text; } #endregion #endregion } }