294 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			294 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Linq;
 | ||
| using System.Web.UI.WebControls;
 | ||
| using BLL;
 | ||
| using NPOI.Util;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Data;
 | ||
| using FineUIPro.Web.DataShow;
 | ||
| using System.Data.SqlClient;
 | ||
| using System.Threading;
 | ||
| 
 | ||
| namespace FineUIPro.Web.SysManage
 | ||
| {
 | ||
|     public partial class UnitCleanupMerge : PageBase
 | ||
|     {
 | ||
| 
 | ||
|         protected void Page_Load(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (!IsPostBack)
 | ||
|             {
 | ||
|                 this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
 | ||
|                 ////权限按钮方法
 | ||
|                 this.GetButtonPower();
 | ||
| 
 | ||
|                 BindGrid();
 | ||
|                 BindGrid2();
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         #region 加载合并后的单位
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 加载合并后的单位
 | ||
|         /// </summary>
 | ||
|         private void BindGrid()
 | ||
|         {
 | ||
|             var list = (from x in Funs.DB.Base_Unit
 | ||
|                         join y in Funs.DB.Base_UnitType on x.UnitTypeId equals y.UnitTypeId into yGroup
 | ||
|                         from y in yGroup.DefaultIfEmpty()
 | ||
|                         orderby x.UnitName descending
 | ||
|                         select new
 | ||
|                         {
 | ||
|                             x.UnitId,
 | ||
|                             x.UnitCode,
 | ||
|                             x.UnitName,
 | ||
|                             x.ShortUnitName,
 | ||
|                             y.UnitTypeName
 | ||
|                         }).ToList();
 | ||
|             string codeName = ttbUnitNameCodeSearch.Text.Trim();
 | ||
|             if (!string.IsNullOrWhiteSpace(codeName))
 | ||
|             {
 | ||
|                 //list = list.Where(x => !string.IsNullOrWhiteSpace(x.UnitCode) && !string.IsNullOrWhiteSpace(x.UnitName)).ToList();
 | ||
|                 list = list.Where(x => (!string.IsNullOrWhiteSpace(x.UnitCode) && x.UnitCode.Contains(codeName)) || (!string.IsNullOrWhiteSpace(x.UnitName) && x.UnitName.Contains(codeName)) || (!string.IsNullOrWhiteSpace(x.ShortUnitName) && x.ShortUnitName.Contains(codeName))).ToList();
 | ||
|             }
 | ||
| 
 | ||
|             // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
 | ||
|             Grid1.RecordCount = list.Count();
 | ||
|             // 2.获取当前分页数据
 | ||
|             DataTable table = Funs.LINQToDataTable(list);
 | ||
| 
 | ||
|             // 3.绑定到Grid
 | ||
|             //Grid1.DataSource = table;
 | ||
|             Grid1.DataSource = this.GetPagedDataTable(Grid1, table);
 | ||
|             Grid1.DataBind();
 | ||
|         }
 | ||
|         /// <summary>
 | ||
|         /// 
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
 | ||
|         {
 | ||
|             BindGrid();
 | ||
|         }
 | ||
|         protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | ||
|         {
 | ||
|             BindGrid();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         protected void ttbUnitNameCodeSearch_Trigger1Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             ttbUnitNameCodeSearch.Text = string.Empty;
 | ||
|             ttbUnitNameCodeSearch.ShowTrigger1 = false;
 | ||
|             BindGrid();
 | ||
|         }
 | ||
|         protected void ttbUnitNameCodeSearch_Trigger2Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             ttbUnitNameCodeSearch.ShowTrigger1 = true;
 | ||
|             BindGrid();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void TextBox_TextChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             BindGrid();
 | ||
|         }
 | ||
| 
 | ||
|         #endregion
 | ||
| 
 | ||
|         #region 加载需要合并的单位
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 加载需要合并的单位
 | ||
|         /// </summary>
 | ||
|         private void BindGrid2()
 | ||
|         {
 | ||
|             var list = (from x in Funs.DB.Base_Unit
 | ||
|                         join y in Funs.DB.Base_UnitType on x.UnitTypeId equals y.UnitTypeId into yGroup
 | ||
|                         from y in yGroup.DefaultIfEmpty()
 | ||
|                         where x.UnitId != Const.UnitId_CWCEC && x.UnitId != Const.UnitId_Con
 | ||
|                         orderby x.UnitName descending
 | ||
|                         select new
 | ||
|                         {
 | ||
|                             x.UnitId,
 | ||
|                             x.UnitCode,
 | ||
|                             x.UnitName,
 | ||
|                             x.ShortUnitName,
 | ||
|                             y.UnitTypeName
 | ||
|                         }).ToList();
 | ||
|             //string unitId = this.drpUnitId.SelectedValue;
 | ||
|             string unitId = this.drpUnitBox.Value;
 | ||
|             if (!string.IsNullOrWhiteSpace(unitId))
 | ||
|             {
 | ||
|                 list = list.Where(x => x.UnitId != unitId).ToList();
 | ||
|             }
 | ||
|             string codeName = ttbMergeUnitNameCodeSearch.Text.Trim();
 | ||
|             if (!string.IsNullOrWhiteSpace(codeName))
 | ||
|             {
 | ||
|                 //list = list.Where(x => !string.IsNullOrWhiteSpace(x.UnitCode) && !string.IsNullOrWhiteSpace(x.UnitName)).ToList();
 | ||
|                 list = list.Where(x => (!string.IsNullOrWhiteSpace(x.UnitCode) && x.UnitCode.Contains(codeName)) || (!string.IsNullOrWhiteSpace(x.UnitName) && x.UnitName.Contains(codeName)) || (!string.IsNullOrWhiteSpace(x.ShortUnitName) && x.ShortUnitName.Contains(codeName))).ToList();
 | ||
|             }
 | ||
| 
 | ||
|             // 1.设置总项数(特别注意:数据库分页一定要设置总记录数RecordCount)
 | ||
|             Grid2.RecordCount = list.Count();
 | ||
|             // 2.获取当前分页数据
 | ||
|             DataTable table = Funs.LINQToDataTable(list);
 | ||
| 
 | ||
|             // 3.绑定到Grid
 | ||
|             //Grid2.DataSource = table;
 | ||
|             Grid2.DataSource = this.GetPagedDataTable(Grid2, table);
 | ||
|             Grid2.DataBind();
 | ||
|         }
 | ||
|         /// <summary>
 | ||
|         /// 
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e)
 | ||
|         {
 | ||
|             BindGrid2();
 | ||
|         }
 | ||
|         protected void Grid2_Sort(object sender, GridSortEventArgs e)
 | ||
|         {
 | ||
|             BindGrid2();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         protected void ttbMergeUnitNameCodeSearch_Trigger1Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             ttbMergeUnitNameCodeSearch.Text = string.Empty;
 | ||
|             ttbMergeUnitNameCodeSearch.ShowTrigger1 = false;
 | ||
|             BindGrid2();
 | ||
|         }
 | ||
|         protected void ttbMergeUnitNameCodeSearch_Trigger2Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             ttbMergeUnitNameCodeSearch.ShowTrigger1 = true;
 | ||
|             BindGrid2();
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void MergeTextBox_TextChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             BindGrid2();
 | ||
|         }
 | ||
| 
 | ||
|         #endregion
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 保存按钮
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void btnSave_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             string unitId = string.Empty;
 | ||
|             string unitMergeId = string.Empty;
 | ||
|             string unitName = string.Empty;
 | ||
|             string unitMergeName = string.Empty;
 | ||
| 
 | ||
|             if (!string.IsNullOrWhiteSpace(this.drpUnitBox.Text))
 | ||
|             {
 | ||
|                 unitId = this.drpUnitBox.Value.Trim();
 | ||
|                 unitName = this.drpUnitBox.Text;
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 Alert.ShowInParent("请选择合并后单位!", MessageBoxIcon.Warning);
 | ||
|                 return;
 | ||
|             }
 | ||
|             if (!string.IsNullOrWhiteSpace(this.drpMergeUnitBox.Text))
 | ||
|             {
 | ||
|                 unitMergeId = this.drpMergeUnitBox.Value.Trim();
 | ||
|                 unitMergeName = this.drpMergeUnitBox.Text;
 | ||
|                 if (unitMergeId == unitId)
 | ||
|                 {
 | ||
|                     Alert.ShowInParent("两个单位为同一个单位,无需合并!", MessageBoxIcon.Warning);
 | ||
|                     return;
 | ||
|                 }
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 Alert.ShowInParent("请选择需要合并的单位!", MessageBoxIcon.Warning);
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
|             List<string> unitMergeIds = unitMergeId.Split(',').ToList();
 | ||
|             unitMergeIds = unitMergeIds.Where(x => x != unitId).ToList();
 | ||
|             //db.DataIdMove.DeleteAllOnSubmit();
 | ||
| 
 | ||
|             Model.SGGLDB db = Funs.DB;
 | ||
|             var clist = db.DataIdMove.Where(x => x.ColumType == "Unit" && x.NewIds == unitId).ToList();
 | ||
|             db.DataIdMove.DeleteAllOnSubmit(clist);
 | ||
|             db.SubmitChanges();
 | ||
|             List<Model.DataIdMove> list = new List<Model.DataIdMove>();
 | ||
|             foreach (var mergeId in unitMergeIds)
 | ||
|             {
 | ||
|                 list.Add(new Model.DataIdMove { OldId = mergeId.Trim(), NewIds = unitId.Trim(), ColumType = "Unit" });
 | ||
|             }
 | ||
| 
 | ||
|             db.DataIdMove.InsertAllOnSubmit(list);
 | ||
|             db.SubmitChanges();
 | ||
| 
 | ||
| 
 | ||
|             string strSql = $"exec SP_DataIdMove 'Unit','{unitId}'";
 | ||
|             BLL.SQLHelper.ExecutSql(strSql);
 | ||
| 
 | ||
|             //SqlParameter[] parameters = {
 | ||
|             //    new SqlParameter("@colums", "Unit"),
 | ||
|             //    new SqlParameter("@returnVal", SqlDbType.Int)
 | ||
|             //};
 | ||
|             //BLL.SQLHelper.ExecuteNonQueryStoredProcedure("SP_DataIdMove", parameters);
 | ||
|             //int succ = BLL.SQLHelper.ExecuteProcedure("SP_DataIdMove", parameters);
 | ||
|             //Thread.Sleep(30000); // 等待30秒,30000毫秒等于30秒
 | ||
| 
 | ||
|             string txtRemark = this.txtRemark.Text.Trim();
 | ||
|             //其他数据表单位数据合并后,删除单位表冗余单位
 | ||
|             foreach (var mergeId in unitMergeIds)
 | ||
|             {
 | ||
|                 string uId = mergeId.Trim();
 | ||
|                 var unit = BLL.UnitService.GetUnitByUnitId(uId);
 | ||
|                 if (unit != null)
 | ||
|                 {
 | ||
|                     UnitService.DeleteUnitById(uId);
 | ||
|                     string op = $"单位合并清理后,{Const.BtnDelete};备注:{txtRemark}";
 | ||
|                     LogService.AddSys_Log(this.CurrUser, unit.UnitCode, unit.UnitId, Const.UnitMenuId, op);
 | ||
|                 }
 | ||
|             }
 | ||
| 
 | ||
|             db.DataIdMove.DeleteAllOnSubmit(list);
 | ||
|             db.SubmitChanges();
 | ||
| 
 | ||
|             PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         #region 获取按钮权限
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 获取按钮权限
 | ||
|         /// </summary>
 | ||
|         /// <param name="button"></param>
 | ||
|         /// <returns></returns>
 | ||
|         private void GetButtonPower()
 | ||
|         {
 | ||
|             if (this.CurrUser.UserId == Const.sysglyId || this.CurrUser.UserId == Const.hfnbdId || this.CurrUser.UserId == Const.fuweiId || this.CurrUser.UserId == Const.shenyinhangId)
 | ||
|             {//系统管理员、合肥诺必达、付伟、申银行
 | ||
|                 this.btnSave.Hidden = false;
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         #endregion        
 | ||
| 
 | ||
|     }
 | ||
| } |