2025-04-07 17:43:30 +08:00
using BLL ;
using Model ;
using Newtonsoft.Json.Linq ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
2025-04-21 09:33:45 +08:00
using System.IO ;
2025-04-07 17:43:30 +08:00
using System.Linq ;
2025-04-21 09:33:45 +08:00
using Aspose.Words ;
using Aspose.Words.Drawing ;
using Aspose.Words.Tables ;
2025-04-07 17:43:30 +08:00
namespace FineUIPro.Web.HSSE.Check
{
public partial class RectifyNoticesAdd : PageBase
{
#region 定 义 项
/// <summary>
/// 主键
/// </summary>
public string RectifyNoticesId
{
get
{
return ( string ) ViewState [ "RectifyNoticesId" ] ;
}
set
{
ViewState [ "RectifyNoticesId" ] = value ;
}
}
public string ControlId
{
get
{
return ( string ) ViewState [ "ControlId" ] ;
}
set
{
ViewState [ "ControlId" ] = value ;
}
}
#endregion
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
BLL . RectifyService . InitRectifyDropDownList ( this . drpRectifyId , false , string . Empty ) ;
//受检单位
BLL . UnitService . InitUnitByProjectIdUnitTypeDropDownList ( this . drpUnitId , this . CurrUser . LoginProjectId , Const . ProjectUnitType_2 , false ) ;
//区域
BLL . UnitWorkService . InitUnitWorkDownList ( this . drpWorkAreaId , this . CurrUser . LoginProjectId , true ) ;
//if (!string.IsNullOrEmpty(this.drpUnitId.SelectedValue))
//{
// ///安全经理
// BLL.UserService.InitFlowOperateControlUserDropDownList(this.drpSignPerson, "", this.drpUnitId.SelectedValue, true);
//}
//else
{
var db = Funs . DB ;
var userListaq = from x in db . Sys_User
join y in db . Project_ProjectUnit
on x . UnitId equals y . UnitId
join p in db . Project_ProjectUser
on x . UserId equals p . UserId
where y . UnitType = = Const . ProjectUnitType_1 & & p . ProjectId = = CurrUser . LoginProjectId & & y . ProjectId = = CurrUser . LoginProjectId
orderby x . UserCode
select x ;
this . drpSignPerson . DataSource = userListaq . ToList ( ) ;
drpSignPerson . DataValueField = "UserId" ;
drpSignPerson . DataTextField = "UserName" ;
drpSignPerson . DataBind ( ) ;
Funs . FineUIPleaseSelect ( drpSignPerson ) ;
}
///检察人员
BLL . UserService . InitFlowOperateControlUserDropDownList ( this . drpCheckMan , this . CurrUser . LoginProjectId , null , true ) ;
//Funs.FineUIPleaseSelect(drpIsRectify);
RectifyNoticesId = Request . Params [ "RectifyNoticesId" ] ;
var getRectifyNotices = RectifyNoticesService . GetRectifyNoticesById ( RectifyNoticesId ) ;
if ( getRectifyNotices ! = null )
{
if ( ! string . IsNullOrEmpty ( getRectifyNotices . UnitId ) )
{
this . drpUnitId . SelectedValue = getRectifyNotices . UnitId ;
}
if ( ! string . IsNullOrEmpty ( getRectifyNotices . WorkAreaId ) )
{
this . drpWorkAreaId . SelectedValueArray = getRectifyNotices . WorkAreaId . Split ( ',' ) ;
}
if ( ! string . IsNullOrEmpty ( getRectifyNotices . CheckManIds ) )
{
this . drpCheckMan . SelectedValueArray = getRectifyNotices . CheckManIds . Split ( ',' ) ;
}
this . txtCheckPerson . Text = getRectifyNotices . CheckManNames ;
this . txtRectifyNoticesCode . Text = getRectifyNotices . RectifyNoticesCode ;
this . txtCheckedDate . Text = getRectifyNotices . CheckedDate . ToString ( ) ;
//if (!string.IsNullOrEmpty(getRectifyNotices.UnitId))
//{
// this.drpSignPerson.Items.Clear();
// BLL.UserService.InitFlowOperateControlUserDropDownList(this.drpSignPerson, this.CurrUser.LoginProjectId, getRectifyNotices.UnitId, true);
//}
if ( ! string . IsNullOrEmpty ( getRectifyNotices . SignPerson ) )
{
this . drpSignPerson . SelectedValue = getRectifyNotices . SignPerson ;
}
if ( ! string . IsNullOrEmpty ( getRectifyNotices . HiddenHazardType ) )
{
this . drpHiddenHazardType . SelectedValue = getRectifyNotices . HiddenHazardType ;
}
BindGrid ( ) ;
BindGrid1 ( ) ;
}
else
{
this . txtCheckedDate . Text = string . Format ( "{0:yyyy-MM-dd}" , DateTime . Now ) ;
////自动生成编码
this . txtRectifyNoticesCode . Text = CodeRecordsService . ReturnCodeByMenuIdProjectId ( Const . ProjectRectifyNoticesMenuId , this . CurrUser . LoginProjectId , this . CurrUser . UnitId ) ;
ControlId = Request . Params [ "ControlId" ] ;
if ( ! string . IsNullOrEmpty ( ControlId ) )
{
var control = Funs . DB . HSSE_ConstructionRiskCheck . FirstOrDefault ( x = > x . ConstructionRiskCheckId = = ControlId ) ;
if ( control ! = null )
{
var risk = Funs . DB . HSSE_ConstructionRisk . FirstOrDefault ( x = > x . ConstructionRiskId = = control . ConstructionRiskId ) ;
drpWorkAreaId . SelectedValue = risk . WorkAreaId ;
drpUnitId . SelectedValue = risk . UnitId ;
List < Model . Check_RectifyNoticesItem > view = getViewTestPlanTrainingList ( ) ;
var item = new Check_RectifyNoticesItem
{
RectifyNoticesItemId = SQLHelper . GetNewID ( ) ,
RectifyNoticesId = this . RectifyNoticesId ,
WrongContent = risk . LicenseDes
} ;
view . Add ( item ) ;
//将gd数据保存在list中
Grid1 . DataSource = view ;
Grid1 . DataBind ( ) ;
}
}
}
}
}
#region 绑 定 grid
/// <summary>
///
/// </summary>
public void BindGrid ( )
{
if ( ! string . IsNullOrEmpty ( this . RectifyNoticesId ) )
{
string strSql = @"select RectifyNoticesItemId,Rectify.RectifyName as RectifyId, RectifyNoticesId, WrongContent, Requirement, LimitTime, RectifyResults, IsRectify from [dbo].[Check_RectifyNoticesItem] item left join Technique_Rectify Rectify on Rectify.RectifyId=item.RectifyId " ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
strSql + = "where RectifyNoticesId = @RectifyNoticesId" ;
listStr . Add ( new SqlParameter ( "@RectifyNoticesId" , RectifyNoticesId ) ) ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
var table = this . GetPagedDataTable ( Grid1 , tb ) ;
Grid1 . DataSource = table ;
Grid1 . DataBind ( ) ;
}
else
{
Grid1 . DataSource = null ;
Grid1 . DataBind ( ) ;
}
}
/// <summary>
///
/// </summary>
public void BindGrid1 ( )
{
if ( ! string . IsNullOrEmpty ( this . RectifyNoticesId ) )
{
string strSql = @ "select FlowOperateId, RectifyNoticesId, OperateName, OperateManId, OperateTime, IsAgree, Opinion,S.UserName
, ( case when IsAgree = 0 then ' 不 同 意 ' else ' 同 意 ' end ) as IsAgreeName
from Check_RectifyNoticesFlowOperate C left join Sys_User S on C . OperateManId = s . UserId ";
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
strSql + = "where RectifyNoticesId= @RectifyNoticesId" ;
listStr . Add ( new SqlParameter ( "@RectifyNoticesId" , RectifyNoticesId ) ) ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
var table = this . GetPagedDataTable ( gvFlowOperate , tb ) ;
gvFlowOperate . DataSource = table ;
gvFlowOperate . DataBind ( ) ;
}
else
{
Grid1 . DataSource = null ;
Grid1 . DataBind ( ) ;
}
}
#endregion
protected void btnAdd_Click ( object sender , EventArgs e )
{
List < Model . Check_RectifyNoticesItem > view = getViewTestPlanTrainingList ( ) ;
Model . Check_RectifyNoticesItem notice = new Model . Check_RectifyNoticesItem
{
RectifyNoticesItemId = SQLHelper . GetNewID ( )
} ;
view . Add ( notice ) ;
//将gd数据保存在list中
Grid1 . DataSource = view ;
Grid1 . DataBind ( ) ;
}
#region 收 集 页 面 明 细 信 息
/// <summary>
/// 收集页面信息
/// </summary>
/// <returns></returns>
private List < Model . Check_RectifyNoticesItem > getViewTestPlanTrainingList ( )
{
List < Model . Check_RectifyNoticesItem > view = new List < Check_RectifyNoticesItem > ( ) ;
var data = Grid1 . GetMergedData ( ) ;
if ( data ! = null )
{
var rectifyList = BLL . RectifyService . GetRectifyList ( ) ;
foreach ( JObject mergedRow in Grid1 . GetMergedData ( ) )
{
JObject values = mergedRow . Value < JObject > ( "values" ) ;
string rectifyId = values . Value < string > ( "RectifyId" ) ;
string wrongContent = values . Value < string > ( "WrongContent" ) ;
string rectifyNoticesItemId = values . Value < string > ( "RectifyNoticesItemId" ) ;
string requirement = values . Value < string > ( "Requirement" ) ;
string limitTime = values . Value < string > ( "LimitTime" ) ;
var item = new Check_RectifyNoticesItem
{
RectifyNoticesItemId = rectifyNoticesItemId ,
RectifyNoticesId = this . RectifyNoticesId ,
WrongContent = wrongContent ,
Requirement = requirement ,
LimitTime = Funs . GetNewDateTime ( limitTime ) ,
} ;
var rectify = rectifyList . FirstOrDefault ( x = > x . RectifyName = = rectifyId ) ;
if ( rectify ! = null )
{
item . RectifyId = rectify . RectifyId ;
}
view . Add ( item ) ;
}
}
return view ;
}
#endregion
#region grid 操 作
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowCommand ( object sender , GridCommandEventArgs e )
{
string itemId = Grid1 . DataKeys [ e . RowIndex ] [ 0 ] . ToString ( ) ;
if ( e . CommandName = = "AttachUrl" )
{
PageContext . RegisterStartupScript ( WindowAtt . GetShowReference ( String . Format ( "~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/RectifyNotices&menuId={1}&strParam=1" , itemId , BLL . Const . ProjectRectifyNoticesMenuId ) ) ) ;
}
if ( e . CommandName = = "delete" )
{
var getView = getViewTestPlanTrainingList ( ) ;
var getfi = getView . FirstOrDefault ( x = > x . RectifyNoticesItemId = = itemId ) ;
if ( getfi ! = null )
{
getView . Remove ( getfi ) ;
}
Grid1 . DataSource = getView ;
Grid1 . DataBind ( ) ;
}
}
#endregion
#region 保 存 方 法
protected void btnSave_Click ( object sender , EventArgs e )
{
SaveRectifyNotices ( Const . BtnSave ) ;
}
protected void btnSubmit_Click ( object sender , EventArgs e )
{
SaveRectifyNotices ( Const . BtnSubmit ) ;
}
/// <summary>
/// 保存方法
/// </summary>
/// <param name="saveType"></param>
private void SaveRectifyNotices ( string saveType )
{
Model . Check_RectifyNotices newRectifyNotices = new Check_RectifyNotices
{
RectifyNoticesId = this . RectifyNoticesId ,
RectifyNoticesCode = this . txtRectifyNoticesCode . Text . Trim ( ) ,
ProjectId = this . CurrUser . LoginProjectId ,
CheckedDate = Funs . GetNewDateTime ( this . txtCheckedDate . Text . Trim ( ) ) ,
CompleteManId = this . CurrUser . UserId ,
} ;
newRectifyNotices . States = Const . State_0 ;
if ( this . drpSignPerson . SelectedValue ! = BLL . Const . _Null )
{
newRectifyNotices . SignPerson = this . drpSignPerson . SelectedValue ;
}
if ( saveType = = Const . BtnSubmit )
{
newRectifyNotices . States = Const . State_1 ;
if ( string . IsNullOrEmpty ( newRectifyNotices . SignPerson ) )
{
Alert . ShowInParent ( "请选择项目安全经理!" , MessageBoxIcon . Warning ) ;
return ;
}
}
if ( this . drpUnitId . SelectedValue ! = BLL . Const . _Null )
{
newRectifyNotices . UnitId = this . drpUnitId . SelectedValue ;
}
if ( this . drpWorkAreaId . SelectedValue ! = BLL . Const . _Null )
{
newRectifyNotices . WorkAreaId = Funs . GetStringByArray ( this . drpWorkAreaId . SelectedValueArray ) ;
}
if ( this . drpCheckMan . SelectedValue ! = BLL . Const . _Null )
{
newRectifyNotices . CheckManIds = Funs . GetStringByArray ( this . drpCheckMan . SelectedValueArray ) ;
}
if ( ! string . IsNullOrEmpty ( txtCheckPerson . Text ) )
{
newRectifyNotices . CheckManNames = txtCheckPerson . Text ;
}
if ( this . drpHiddenHazardType . SelectedValue ! = BLL . Const . _Null )
{
newRectifyNotices . HiddenHazardType = this . drpHiddenHazardType . SelectedValue ;
}
if ( ! string . IsNullOrEmpty ( this . RectifyNoticesId ) )
{
RectifyNoticesService . UpdateRectifyNotices ( newRectifyNotices ) ;
RectifyNoticesService . DeleteRectifyNoticesRectifyNoticesItemById ( this . RectifyNoticesId ) ;
}
else
{
this . RectifyNoticesId = newRectifyNotices . RectifyNoticesId = SQLHelper . GetNewID ( ) ;
if ( ! string . IsNullOrEmpty ( Request . Params [ "HazardSelectedItemId" ] ) )
{
newRectifyNotices . DataFrom = Request . Params [ "HazardSelectedItemId" ] ;
}
newRectifyNotices . ControlId = Request . Params [ "ControlId" ] ;
RectifyNoticesService . AddRectifyNotices ( newRectifyNotices ) ;
}
if ( saveType = = Const . BtnSubmit )
{
Model . Check_RectifyNoticesFlowOperate newOItem = new Model . Check_RectifyNoticesFlowOperate
{
FlowOperateId = SQLHelper . GetNewID ( ) ,
RectifyNoticesId = newRectifyNotices . RectifyNoticesId ,
OperateName = "检查人员提交整改单" ,
OperateManId = this . CurrUser . UserId ,
OperateTime = DateTime . Now ,
} ;
Funs . DB . Check_RectifyNoticesFlowOperate . InsertOnSubmit ( newOItem ) ;
Funs . DB . SubmitChanges ( ) ;
}
var getItem = getViewTestPlanTrainingList ( ) ;
if ( getItem . Count ( ) > 0 )
{
Funs . DB . Check_RectifyNoticesItem . InsertAllOnSubmit ( getItem ) ;
Funs . DB . SubmitChanges ( ) ;
}
//Project_HSSEData_HSSEService.StatisticalData(this.CurrUser.LoginProjectId, Project_HSSEData_HSSEService.HSSEDateType.HiddenDangerTroubleshooting);
//Project_HSSEData_HiddenDangerDetailService.StatisticalData(this.CurrUser.LoginProjectId);
ShowNotify ( saveType + "成功!" , MessageBoxIcon . Success ) ;
if ( string . IsNullOrEmpty ( Request . Params [ "Main" ] ) )
{
PageContext . RegisterStartupScript ( ActiveWindow . GetHidePostBackReference ( ) ) ;
}
else
{
PageContext . RegisterStartupScript ( String . Format ( "window.close();" ) ) ;
}
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpCheckMan_SelectedIndexChanged ( object sender , EventArgs e )
{
this . drpCheckMan . SelectedValueArray = Funs . RemoveDropDownListNull ( this . drpCheckMan . SelectedValueArray ) ;
}
protected void drpWorkAreaId_SelectedIndexChanged ( object sender , EventArgs e )
{
this . drpWorkAreaId . SelectedValueArray = Funs . RemoveDropDownListNull ( this . drpWorkAreaId . SelectedValueArray ) ;
}
//protected void drpUnitId_SelectedIndexChanged(object sender, EventArgs e)
//{
// this.drpSignPerson.Items.Clear();
// BLL.UserService.InitFlowOperateControlUserDropDownList(this.drpSignPerson, "", this.drpUnitId.SelectedValue, true);
// this.drpSignPerson.SelectedIndex=0;
//}
2025-04-21 09:33:45 +08:00
/// <summary>
/// 导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnPrinter_Click ( object sender , EventArgs e )
{
//获取所有列表导出
if ( ! string . IsNullOrEmpty ( this . RectifyNoticesId ) )
{
var rectifyNotices = RectifyNoticesService . GetRectifyNoticesById ( RectifyNoticesId ) ;
string CheckManIds = rectifyNotices . CheckManIds ;
string CheckManNames = string . Empty ;
if ( CheckManIds ! = null )
{
string [ ] Ids = CheckManIds . ToString ( ) . Split ( ',' ) ;
foreach ( string t in Ids )
{
var Name = BLL . UserService . GetUserNameByUserId ( t ) ;
if ( Name ! = null )
{
CheckManNames + = Name + "," ;
}
}
}
string DutyPersonId = rectifyNotices . DutyPersonId ;
string DutyPersonName = UserService . GetUserNameByUserId ( DutyPersonId ) ;
var dataList = ( from item in Funs . DB . Check_RectifyNoticesItem
join rectify in Funs . DB . Technique_Rectify
on item . RectifyId equals rectify . RectifyId into rectifyGroup
from rectify in rectifyGroup . DefaultIfEmpty ( )
where item . RectifyNoticesId = = RectifyNoticesId
select new
{
RectifyNoticesItemId = item . RectifyNoticesItemId ,
RectifyId = rectify . RectifyName ,
RectifyNoticesId = item . RectifyNoticesId ,
WrongContent = item . WrongContent ,
Requirement = item . Requirement ,
LimitTime = item . LimitTime ,
RectifyResults = item . RectifyResults ,
IsRectify = item . IsRectify
} ) . ToList ( ) ;
string rootPath = Server . MapPath ( "~/" ) ;
string initTemplatePath = string . Empty ;
string uploadfilepath = string . Empty ;
string newUrl = string . Empty ;
initTemplatePath = "File\\Word\\HSSE\\安全质量环保检查记录(模板)建投隐患整改通知单.doc" ;
uploadfilepath = rootPath + initTemplatePath ;
newUrl = uploadfilepath . Replace ( ".doc" , RectifyNoticesId + ".doc" ) ;
if ( File . Exists ( newUrl ) )
{
File . Delete ( newUrl ) ;
}
File . Copy ( uploadfilepath , newUrl ) ;
AsposeWordHelper helper = new AsposeWordHelper ( ) ;
helper . OpenTempelte ( newUrl ) ; //打开模板文件
var project =
( from x in Funs . DB . Base_Project where x . ProjectId = = this . CurrUser . LoginProjectId select x )
. FirstOrDefault ( ) ;
string projectName = project . ProjectName ;
string remark = project . Remark ;
string [ ] fieldNames =
{
"projectName" , "remark"
} ;
object [ ] fieldValues =
{
projectName , remark
} ;
helper . Executefield ( fieldNames , fieldValues ) ; //域赋值
if ( dataList . Count > 0 )
{
Document doc = helper . Document ;
DocumentBuilder builder = new DocumentBuilder ( doc ) ;
Table table = ( Table ) doc . GetChild ( NodeType . Table , 1 , true ) ; // 定位第一个表格
int number = 1 ;
foreach ( var item in dataList )
{
string WrongContent = item . WrongContent ;
string Requirement = item . Requirement ;
string LimitTime = item . LimitTime . HasValue
? $" {item.LimitTime.Value.Year} 年 {item.LimitTime.Value.Month:D2} 月 {item.LimitTime.Value.Day:D2} 日"
: "" ;
List < string > Paths = new List < string > ( ) ;
var res = AttachFileService . getFileUrl ( item . RectifyNoticesItemId + "#1" ) ;
if ( ! string . IsNullOrEmpty ( res ) )
{
string [ ] arr = res . Split ( ',' ) ;
for ( int i = 0 ; i < arr . Length ; i + + )
{
Paths . Add ( rootPath + arr [ i ] ) ;
}
}
// 克隆模板占位行
Row newRow = ( Row ) table . LastRow . Clone ( true ) ;
table . AppendChild ( newRow ) ;
// 定位到单元格
Cell cell = newRow . FirstCell ;
// 清空单元格所有段落
cell . RemoveAllChildren ( ) ;
Paragraph para = new Paragraph ( doc ) ; // 显式创建段落
cell . AppendChild ( para ) ;
builder . MoveTo ( para ) ; // 定位到段落
// 插入文本
builder . Write ( " 存在问题" + number . ToString ( ) + ": " + WrongContent ) ;
builder . Writeln ( ) ; // 换行
builder . Write ( " 整改要求:" + Requirement ) ;
builder . Writeln ( ) ; // 换行
builder . Write ( " 整改时间:" + LimitTime + " 整改责任人:" + DutyPersonName + " 监督人:" +
CheckManNames ) ;
builder . Writeln ( ) ; // 换行
// 插入多张图片(横向排列)
if ( Paths . Count > 0 )
{
foreach ( string imgPath in Paths )
{
// 计算每张图片宽度(总宽度按单元格宽度平分)
double cellWidth = cell . CellFormat . Width ;
double imgWidth = ( cellWidth - 10 * ( Paths . Count - 1 ) ) / Paths . Count - 10 ;
// 插入图片并调整尺寸
Shape image = builder . InsertImage ( imgPath ) ;
image . Width = Paths . Count = = 1 ? imgWidth / 2 : imgWidth ;
// image.Height = image.ImageData.ImageSize.HeightPixels * (imgWidth / image.ImageData.ImageSize.WidthPixels);
image . Height = 120 ;
// 图片间留间距(横向排列)
if ( imgPath ! = Paths . Last ( ) )
{
builder . MoveTo ( cell . LastParagraph . AppendChild ( new Run ( doc ) ) ) ;
builder . Write ( " " ) ; // 插入空格分隔
}
}
}
number + + ;
}
// 删除模板中的原始占位行
table . Rows . RemoveAt ( 0 ) ;
}
helper . SaveDoc ( newUrl ) ; //文件保存, 保存为doc
// 验证文件是否存在
if ( ! File . Exists ( newUrl ) )
{
throw new Exception ( "文件不存在: " + newUrl ) ;
}
string fileName = Path . GetFileName ( newUrl ) ;
FileInfo info = new FileInfo ( newUrl ) ;
long fileSize = info . Length ;
Response . Clear ( ) ;
Response . ContentType = "application/x-zip-compressed" ;
Response . AddHeader ( "Content-Disposition" ,
"attachment;filename=" + System . Web . HttpUtility . UrlEncode ( fileName , System . Text . Encoding . UTF8 ) ) ;
Response . AddHeader ( "Content-Length" , fileSize . ToString ( ) ) ;
Response . TransmitFile ( newUrl , 0 , fileSize ) ;
Response . Flush ( ) ;
Response . Close ( ) ;
File . Delete ( newUrl ) ;
}
}
2025-04-07 17:43:30 +08:00
}
}