2025-04-07 17:43:30 +08:00
using Aspose.Words ;
using Aspose.Words.Tables ;
using BLL ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.IO ;
using System.Linq ;
namespace FineUIPro.Web.Customization.CNCCG.ZHGL.Problem
{
public partial class ProblemReplyManager : PageBase
{
public string ProjectId
{
get
{
return ( string ) ViewState [ "ProjectId" ] ;
}
set
{
ViewState [ "ProjectId" ] = value ;
}
}
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
2025-04-09 20:34:57 +08:00
Funs . DropDownPageSize ( this . ddlPageSize ) ;
2025-04-07 17:43:30 +08:00
this . ProjectId = this . CurrUser . LoginProjectId ;
if ( ! string . IsNullOrEmpty ( Request . Params [ "projectId" ] ) & & Request . Params [ "projectId" ] ! = this . CurrUser . LoginProjectId )
{
this . ProjectId = Request . Params [ "projectId" ] ;
}
2025-04-09 20:34:57 +08:00
this . ucTree . UnitId = this . CurrUser . UnitId ;
this . ucTree . ProjectId = this . ProjectId ;
if ( ! string . IsNullOrEmpty ( this . ProjectId ) )
{
this . panelLeftRegion . Hidden = true ;
////权限按钮方法
this . GetButtonPower ( ) ;
}
2025-04-07 17:43:30 +08:00
if ( this . CurrUser ! = null & & this . CurrUser . PageSize . HasValue )
{
Grid1 . PageSize = this . CurrUser . PageSize . Value ;
}
this . ddlPageSize . SelectedValue = Grid1 . PageSize . ToString ( ) ;
// 绑定表格
this . BindGrid ( ) ;
}
}
2025-04-09 20:34:57 +08:00
/// <summary>
/// 公司级树加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void changeTree ( object sender , EventArgs e )
{
this . ProjectId = this . ucTree . ProjectId ;
//if (string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
//{
// btnNew.Hidden = true;
//}
this . GetButtonPower ( ) ;
this . BindGrid ( ) ;
}
2025-04-07 17:43:30 +08:00
#region 获 取 按 钮 权 限
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower ( )
{
if ( Request . Params [ "value" ] = = "0" )
{
return ;
}
2025-04-09 20:34:57 +08:00
var buttonList = BLL . CommonService . GetAllButtonList ( this . ProjectId , this . CurrUser . UserId , BLL . Const . ProblemReplyManagerMenuId ) ;
2025-04-07 17:43:30 +08:00
if ( buttonList . Count ( ) > 0 )
{
if ( buttonList . Contains ( BLL . Const . BtnAdd ) )
{
//this.btnNew.Hidden = false;
}
if ( buttonList . Contains ( BLL . Const . BtnModify ) )
{
this . btnMenuEdit . Hidden = false ;
}
if ( buttonList . Contains ( BLL . Const . BtnDelete ) )
{
//this.btnMenuDelete.Hidden = false;
}
}
}
#endregion
/// <summary>
/// 搜索
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged ( object sender , EventArgs e )
{
this . BindGrid ( ) ;
}
protected void ddlPageSize_SelectedIndexChanged ( object sender , EventArgs e )
{
Grid1 . PageSize = Convert . ToInt32 ( ddlPageSize . SelectedValue ) ;
BindGrid ( ) ;
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange ( object sender , GridPageEventArgs e )
{
Grid1 . PageIndex = e . NewPageIndex ;
BindGrid ( ) ;
}
/// <summary>
/// 关闭弹出窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close ( object sender , WindowCloseEventArgs e )
{
BindGrid ( ) ;
}
#region 加 载 数 据
protected void BindGrid ( )
{
2025-04-09 20:34:57 +08:00
if ( string . IsNullOrEmpty ( this . ProjectId ) )
{
return ;
}
2025-04-07 17:43:30 +08:00
int unitType = CommonService . GetUnitTypeByUserId ( this . CurrUser . UserId ) ;
2025-04-09 20:34:57 +08:00
string strSql = @ "SELECT F.ProjectId,ProNoticeId,
2025-04-07 17:43:30 +08:00
case when F . ProType = '1' then a . ProjectName
else d . UnitName end as ProjectName
, ProCode , CheckMans ,
case when F . ProType = '1' then c . UnitName
else d . UnitName end as UnitName
, CheckStartTime
2025-04-09 20:34:57 +08:00
, CheckEndTime , b . UserName as CreateUserName , F . CreateDate , CreateUser , State , ProType
FROM Problem_Notice F
2025-04-07 17:43:30 +08:00
LEFT JOIN Base_Project a on F . ProjectId = a . ProjectId
LEFT JOIN Sys_User b on F . CreateUser = b . UserId
LEFT JOIN Base_Unit c on F . Unitid = c . UnitId
LEFT JOIN Base_unit d on F . ProjectId = d . UnitId
2025-04-09 20:34:57 +08:00
Where F . State not in ( '0' , '1' ) ";
2025-04-07 17:43:30 +08:00
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
if ( unitType ! = 0 & & string . IsNullOrEmpty ( ProjectId ) ) //公司/分公司
{
strSql + = " AND ( F.ProjectId='" + CurrUser . UnitId + "' and proType='2') or ( proType='1' and F.Unitid='" + CurrUser . UnitId + "' ) or a.UnitId='" + CurrUser . UnitId + "'" ;
}
else
{
if ( ! string . IsNullOrEmpty ( ProjectId ) )
{
strSql + = " and proType='1' And F.ProjectId='" + ProjectId + "' " ;
}
}
if ( ! string . IsNullOrEmpty ( txtProCode . Text . Trim ( ) ) )
{
strSql + = " AND F.ProCode like @ProCode " ;
listStr . Add ( new SqlParameter ( "@ProCode" , "%" + this . txtProCode . Text . Trim ( ) + "%" ) ) ;
}
if ( ! string . IsNullOrEmpty ( txtProjectName . Text . Trim ( ) ) )
{
strSql + = " AND ProjectName like @ProjectName or d.unitname like @ProjectName" ;
listStr . Add ( new SqlParameter ( "@ProjectName" , "%" + this . txtProjectName . Text . Trim ( ) + "%" ) ) ;
}
//if (drpProject.SelectedValue != BLL.Const._Null)
//{
// strSql += " AND F.ProjectId=@ProjectId ";
// listStr.Add(new SqlParameter("@ProjectId", drpProject.SelectedValue));
//}
strSql + = " order by CreateDate desc" ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
Grid1 . RecordCount = tb . Rows . Count ;
var table = this . GetPagedDataTable ( Grid1 , tb ) ;
Grid1 . DataSource = table ;
Grid1 . DataBind ( ) ;
}
#endregion
#region 状 态
protected string ConvertState ( object proType , object state )
{
if ( state ! = null & & proType ! = null )
{
//项目级
string proTypes = proType . ToString ( ) ;
if ( state . ToString ( ) = = "0" )
{
return "待提交" ;
}
else if ( state . ToString ( ) = = "1" )
{
// return "被检查单位负责人审批";
return "检查组审批" ;
}
else if ( state . ToString ( ) = = "2" )
{
return "回复单审批" ;
}
else if ( state . ToString ( ) = = "3" )
{
return "归档" ;
}
else if ( state . ToString ( ) = = "-1" )
{
return "定稿" ;
}
}
return "" ;
}
#endregion
#region 编 辑
protected void btnMenuView_Click ( object sender , EventArgs e )
{
if ( Grid1 . SelectedRowIndexArray . Length = = 0 )
{
Alert . ShowInTop ( "请至少选择一条记录!" , MessageBoxIcon . Warning ) ;
return ;
}
string id = Grid1 . SelectedRowID ;
var ProblemNoticeItem = Funs . DB . Problem_Notice . FirstOrDefault ( x = > x . ProNoticeId = = id ) ;
//当前项目下的单位
var unitCount = Funs . DB . Project_ProjectUnit . Where ( x = > x . ProjectId = = ProblemNoticeItem . ProjectId
& & x . UnitId = = CurrUser . UnitId ) . ToList ( ) . Count ( ) ;
if ( unitCount = = 0 )
{
Alert . ShowInTop ( "您的单位不属于当前项目下,无法查看!" , MessageBoxIcon . Warning ) ;
return ;
}
PageContext . RegisterStartupScript ( Window1 . GetShowReference ( String . Format ( "ProblemReplyManagerEdit.aspx?ProNoticeId={0}&Type=1" , id , "查看 - " ) ) ) ;
}
/// <summary>
/// 双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick ( object sender , GridRowClickEventArgs e )
{
this . EditData ( ) ;
}
/// <summary>
/// 右键编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click ( object sender , EventArgs e )
{
this . EditData ( ) ;
}
/// <summary>
/// 编辑
/// </summary>
protected void EditData ( )
{
if ( Grid1 . SelectedRowIndexArray . Length = = 0 )
{
Alert . ShowInTop ( "请至少选择一条记录!" , MessageBoxIcon . Warning ) ;
return ;
}
string id = Grid1 . SelectedRowID ;
var ProblemNoticeItem = Funs . DB . Problem_Notice . FirstOrDefault ( x = > x . ProNoticeId = = id ) ;
if ( ProblemNoticeItem ! = null )
{
if ( ( this . btnMenuEdit . Hidden | | Convert . ToInt32 ( ProblemNoticeItem . State ) > 1 ) & & ProblemNoticeItem . CreateUser = = CurrUser . UserId ) ////双击事件 编辑权限有:编辑页面,无:查看页面 或者状态是完成时查看页面
{
PageContext . RegisterStartupScript ( Window1 . GetShowReference ( String . Format ( "ProblemReplyManagerEdit.aspx?ProNoticeId={0}&Type=1" , id , "查看 - " ) ) ) ;
}
else
{
PageContext . RegisterStartupScript ( Window1 . GetShowReference ( String . Format ( "ProblemReplyManagerEdit.aspx?ProNoticeId={0}&Type=0" , id , "编辑 - " ) ) ) ;
}
}
}
#endregion
#region 导 出
protected void btnMenuOut_Click ( object sender , EventArgs e ) {
if ( Grid1 . SelectedRowIndexArray . Length = = 0 )
{
Alert . ShowInTop ( "请至少选择一条记录!" , MessageBoxIcon . Warning ) ;
return ;
}
string id = Grid1 . SelectedRowID ;
var model = Funs . DB . Problem_Notice . FirstOrDefault ( x = > x . ProNoticeId = = id ) ;
if ( model ! = null )
{
if ( model . ProType = = "1" )
{
var ProjectName = BLL . ProjectService . GetProjectByProjectId ( model . ProjectId ) . ShortName ; ;
var Cdate = Convert . ToDateTime ( model . CreateDate ) ;
var NowFileName = Cdate . Month . ToString ( ) + "." + Cdate . Day . ToString ( ) + ProjectName + "安全质量检查回复单" ;
string rootPath = Server . MapPath ( "~/" ) ;
string initTemplatePath = string . Empty ;
string uploadfilepath = string . Empty ;
string newUrl = string . Empty ;
initTemplatePath = "File\\Word\\安全质量检查回复单.docx" ;
uploadfilepath = rootPath + initTemplatePath ;
newUrl = uploadfilepath . Replace ( "安全质量检查回复单.docx" , NowFileName + ".docx" ) ;
if ( File . Exists ( newUrl ) )
{
File . Delete ( newUrl ) ;
}
File . Copy ( uploadfilepath , newUrl ) ;
Document doc = new Aspose . Words . Document ( newUrl ) ;
Bookmark Bmark = doc . Range . Bookmarks [ "ProjectName" ] ;
if ( Bmark ! = null )
{
Bmark . Text = ProjectName ;
}
//存在问题整改情况
Aspose . Words . DocumentBuilder builder = new Aspose . Words . DocumentBuilder ( doc ) ;
bool isbool = builder . MoveToBookmark ( "tab1" ) ;
if ( isbool )
{
builder . StartTable ( ) ;
builder . RowFormat . Alignment = Aspose . Words . Tables . RowAlignment . Center ;
builder . CellFormat . Borders . LineStyle = LineStyle . Single ;
builder . CellFormat . Borders . Color = System . Drawing . Color . Black ;
builder . Bold = false ;
}
DataTable dt = new DataTable ( ) ;
dt . Columns . Add ( "序号" , typeof ( string ) ) ;
dt . Columns . Add ( "存在问题" , typeof ( string ) ) ;
dt . Columns . Add ( "整改情况" , typeof ( string ) ) ;
var detailList = Funs . DB . Problem_Notice_C . Where ( x = > x . ProNoticeId = = id ) . OrderBy ( x = > x . SortIndex ) . ToList ( ) ;
if ( detailList . Count > 0 )
{
foreach ( var item in detailList )
{
dt . Rows . Add ( new string [ ] { ( item . SortIndex + 1 ) . ToString ( ) , item . QueDescribe , item . ReSituation } ) ;
}
}
builder . RowFormat . Height = 20 ;
builder . Bold = false ;
builder . InsertCell ( ) ;
builder . CellFormat . VerticalMerge = Aspose . Words . Tables . CellMerge . None ;
builder . CellFormat . HorizontalMerge = Aspose . Words . Tables . CellMerge . First ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Center ; //垂直居中对齐
builder . ParagraphFormat . Alignment = ParagraphAlignment . Center ; //水平居中对齐
builder . CellFormat . Width = 40 ;
builder . Write ( "序号" ) ;
builder . InsertCell ( ) ;
builder . CellFormat . Width = 50 ;
builder . Write ( "存在问题" ) ;
builder . InsertCell ( ) ;
builder . CellFormat . Width = 60 ;
builder . Write ( "整改情况" ) ;
builder . EndRow ( ) ;
foreach ( DataRow row in dt . Rows )
{
foreach ( DataColumn column in dt . Columns )
{
builder . InsertCell ( ) ;
builder . CellFormat . VerticalMerge = Aspose . Words . Tables . CellMerge . None ;
builder . CellFormat . HorizontalMerge = Aspose . Words . Tables . CellMerge . First ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Center ; //垂直居中对齐
builder . ParagraphFormat . Alignment = ParagraphAlignment . Left ; //水平居中对齐
if ( column . ColumnName = = "序号" )
{
builder . ParagraphFormat . Alignment = ParagraphAlignment . Center ; //水平居中对齐
builder . CellFormat . Width = 40 ;
}
else if ( column . ColumnName = = "存在问题" )
{
builder . CellFormat . Width = 50 ;
}
else if ( column . ColumnName = = "整改情况" )
{
builder . CellFormat . Width = 60 ;
}
builder . Write ( row [ column . ColumnName ] . ToString ( ) ) ;
}
builder . EndRow ( ) ;
}
builder . EndTable ( ) ;
//受检单位负责人签名
Bmark = doc . Range . Bookmarks [ "TestedUnitManSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . TestedUnitManSignature ) )
{
string url = rootPath + model . TestedUnitManSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "TestedUnitManSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 100 , 30 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "TestedUnitManDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . TestedUnitManDatetime ! = null )
{
var TestedUnitManDatetime = Convert . ToDateTime ( model . TestedUnitManDatetime ) ;
Bmark . Text = TestedUnitManDatetime . Year . ToString ( ) + "年" + TestedUnitManDatetime . Month . ToString ( )
+ "月" + TestedUnitManDatetime . Day . ToString ( ) + "日" ;
}
}
Bmark = doc . Range . Bookmarks [ "ReviewOpinions" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . ReviewOpinions ) )
{
Bmark . Text = model . ReviewOpinions ;
}
}
//复查人签字
Bmark = doc . Range . Bookmarks [ "ReviewSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . ReviewSignature ) )
{
string url = rootPath + model . ReviewSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "ReviewSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 100 , 30 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "ReviewDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . ReviewDatetime ! = null )
{
var ReviewDatetime = Convert . ToDateTime ( model . ReviewDatetime ) ;
Bmark . Text = ReviewDatetime . Year . ToString ( ) + "年" + ReviewDatetime . Month . ToString ( )
+ "月" + ReviewDatetime . Day . ToString ( ) + "日" ;
}
}
//分管领导
Bmark = doc . Range . Bookmarks [ "LeaderSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . LeaderSignature ) )
{
string url = rootPath + model . LeaderSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "LeaderSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 100 , 30 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "LeaderDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . LeaderDatetime ! = null )
{
var LeaderDatetime = Convert . ToDateTime ( model . LeaderDatetime ) ;
Bmark . Text = LeaderDatetime . Year . ToString ( ) + "年" + LeaderDatetime . Month . ToString ( )
+ "月" + LeaderDatetime . Day . ToString ( ) + "日" ;
}
}
//检查组
Bmark = doc . Range . Bookmarks [ "InspectionUnitSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . InspectionUnitSignature ) )
{
string url = rootPath + model . InspectionUnitSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "InspectionUnitSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 100 , 30 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "InspectionUnitDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . InspectionUnitDatetime ! = null )
{
var InspectionUnitDatetime = Convert . ToDateTime ( model . InspectionUnitDatetime ) ;
Bmark . Text = InspectionUnitDatetime . Year . ToString ( ) + "年" + InspectionUnitDatetime . Month . ToString ( )
+ "月" + InspectionUnitDatetime . Day . ToString ( ) + "日" ;
}
}
#region 安 全 质 量 检 查 回 复 单
builder = new Aspose . Words . DocumentBuilder ( doc ) ;
isbool = builder . MoveToBookmark ( "tab2" ) ;
if ( isbool )
{
builder . StartTable ( ) ;
builder . RowFormat . Alignment = Aspose . Words . Tables . RowAlignment . Center ;
builder . CellFormat . Borders . LineStyle = LineStyle . Single ;
builder . CellFormat . Borders . Color = System . Drawing . Color . Black ;
builder . Bold = false ;
}
builder . RowFormat . Height = 50 ;
builder . Bold = false ;
foreach ( var item in detailList )
{
//1.问题描述
builder . CellFormat . VerticalMerge = Aspose . Words . Tables . CellMerge . None ;
builder . CellFormat . HorizontalMerge = Aspose . Words . Tables . CellMerge . First ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Center ; //垂直居中对齐
builder . ParagraphFormat . Alignment = ParagraphAlignment . Left ; //水平居中对齐
builder . CellFormat . Width = 100 ;
builder . InsertCell ( ) ;
builder . Write ( "整改前" ) ;
builder . InsertCell ( ) ;
builder . Write ( "整改后" ) ;
//下一行
builder . EndRow ( ) ;
//整改前照片
builder . InsertCell ( ) ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Top ; //顶端对齐
IList < Model . AttachFile > sourlistDetail = AttachFileService . GetBeforeFileList ( item . ProNoticeCId , BLL . Const . ProblemNoticeManagerMenuId ) ;
if ( sourlistDetail ! = null & & sourlistDetail . Count > 0 )
{
string AttachUrl = "" ;
foreach ( var items in sourlistDetail )
{
if ( ! string . IsNullOrEmpty ( items . AttachUrl ) & & items . AttachUrl . ToLower ( ) . EndsWith ( ".jpg" )
| | items . AttachUrl . ToLower ( ) . EndsWith ( ".jpeg" ) | | items . AttachUrl . ToLower ( ) . EndsWith ( ".png" ) )
{
AttachUrl + = items . AttachUrl . TrimEnd ( ',' ) + "," ;
}
}
AttachUrl = AttachUrl . Remove ( AttachUrl . LastIndexOf ( "," ) , 1 ) ;
string [ ] pics = AttachUrl . Split ( ',' ) ;
foreach ( string picsitem in pics )
{
string url = rootPath + picsitem . TrimEnd ( ',' ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builder . InsertImage ( url , 200 , 180 ) ;
}
}
else
{
builder . Write ( "" ) ;
}
}
}
else
{
builder . Write ( "" ) ;
}
builder . InsertCell ( ) ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Top ; //顶端对齐
//整改后照片
sourlistDetail = AttachFileService . GetBeforeFileList ( item . ProNoticeCId + "ZGH" , BLL . Const . ProblemNoticeManagerMenuId ) ;
if ( sourlistDetail ! = null & & sourlistDetail . Count > 0 )
{
string AttachUrl = "" ;
foreach ( var items in sourlistDetail )
{
if ( ! string . IsNullOrEmpty ( items . AttachUrl ) & & items . AttachUrl . ToLower ( ) . EndsWith ( ".jpg" )
| | items . AttachUrl . ToLower ( ) . EndsWith ( ".jpeg" ) | | items . AttachUrl . ToLower ( ) . EndsWith ( ".png" ) )
{
AttachUrl + = items . AttachUrl . TrimEnd ( ',' ) + "," ;
}
}
AttachUrl = AttachUrl . Remove ( AttachUrl . LastIndexOf ( "," ) , 1 ) ;
string [ ] pics = AttachUrl . Split ( ',' ) ;
foreach ( string picsitem in pics )
{
string url = rootPath + picsitem . TrimEnd ( ',' ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builder . InsertImage ( url , 200 , 180 ) ;
}
}
else
{
builder . Write ( "" ) ;
}
}
}
else
{
builder . Write ( "" ) ;
}
//下一行
builder . EndRow ( ) ;
builder . InsertCell ( ) ;
builder . CellFormat . Width = 100 ;
builder . Write ( "问题:" + item . QueDescribe ) ;
//2.整改完成情况
builder . InsertCell ( ) ;
builder . CellFormat . Width = 100 ;
if ( ! string . IsNullOrEmpty ( item . ReSituation ) )
{
builder . Write ( "整改完成情况:" + item . ReSituation ) ;
}
else
{
builder . Write ( "" ) ;
}
builder . EndRow ( ) ;
}
#endregion
doc . Save ( newUrl ) ;
string pdfUrl = newUrl . Replace ( ".docx" , ".pdf" ) ;
libreOfficeHelp . ToPdf ( newUrl , Path . GetDirectoryName ( newUrl ) ) ;
string fileName = Path . GetFileName ( pdfUrl ) ;
FileInfo info = new FileInfo ( pdfUrl ) ;
long fileSize = info . Length ;
System . Web . HttpContext . Current . Response . Clear ( ) ;
System . Web . HttpContext . Current . Response . ContentType = "application/x-zip-compressed" ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Disposition" , "attachment;filename=" + System . Web . HttpUtility . UrlEncode ( fileName , System . Text . Encoding . UTF8 ) ) ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Length" , fileSize . ToString ( ) ) ;
System . Web . HttpContext . Current . Response . TransmitFile ( pdfUrl , 0 , fileSize ) ;
System . Web . HttpContext . Current . Response . Flush ( ) ;
System . Web . HttpContext . Current . Response . Close ( ) ;
File . Delete ( newUrl ) ;
File . Delete ( pdfUrl ) ;
}
else {
var ProjectName = BLL . UnitService . GetUnitByUnitId ( model . ProjectId ) . UnitName ; ;
var Cdate = Convert . ToDateTime ( model . CreateDate ) ;
var NowFileName = Cdate . Month . ToString ( ) + "." + Cdate . Day . ToString ( ) + ProjectName + "安全质量检查回复单" ;
string rootPath = Server . MapPath ( "~/" ) ;
string initTemplatePath = string . Empty ;
string uploadfilepath = string . Empty ;
string newUrl = string . Empty ;
initTemplatePath = "File\\Word\\安全质量检查回复单(公司级).docx" ;
uploadfilepath = rootPath + initTemplatePath ;
//newUrl = uploadfilepath.Replace(".doc", string.Format("{0}-{1:D4}", code, Grid1.RecordCount - Grid1.PageIndex * Grid1.PageSize - Grid1.SelectedRowIndex) + ".doc");
newUrl = uploadfilepath . Replace ( "安全质量检查回复单(公司级).docx" , NowFileName + ".docx" ) ;
if ( File . Exists ( newUrl ) )
{
File . Delete ( newUrl ) ;
}
File . Copy ( uploadfilepath , newUrl ) ;
Document doc = new Aspose . Words . Document ( newUrl ) ;
Bookmark Bmark = doc . Range . Bookmarks [ "ProjectName" ] ;
if ( Bmark ! = null )
{
Bmark . Text = ProjectName ;
}
//存在问题整改情况
Aspose . Words . DocumentBuilder builder = new Aspose . Words . DocumentBuilder ( doc ) ;
bool isbool = builder . MoveToBookmark ( "tab1" ) ;
if ( isbool )
{
builder . StartTable ( ) ;
builder . RowFormat . Alignment = Aspose . Words . Tables . RowAlignment . Center ;
builder . CellFormat . Borders . LineStyle = LineStyle . Single ;
builder . CellFormat . Borders . Color = System . Drawing . Color . Black ;
builder . Bold = false ;
}
DataTable dt = new DataTable ( ) ;
dt . Columns . Add ( "序号" , typeof ( string ) ) ;
dt . Columns . Add ( "存在问题" , typeof ( string ) ) ;
dt . Columns . Add ( "整改情况" , typeof ( string ) ) ;
var detailList = Funs . DB . Problem_Notice_C . Where ( x = > x . ProNoticeId = = id ) . OrderBy ( x = > x . SortIndex ) . ToList ( ) ;
if ( detailList . Count > 0 )
{
foreach ( var item in detailList )
{
dt . Rows . Add ( new string [ ] { ( item . SortIndex + 1 ) . ToString ( ) , item . QueDescribe , item . ReSituation } ) ;
}
}
builder . RowFormat . Height = 20 ;
builder . Bold = false ;
builder . InsertCell ( ) ;
builder . CellFormat . VerticalMerge = Aspose . Words . Tables . CellMerge . None ;
builder . CellFormat . HorizontalMerge = Aspose . Words . Tables . CellMerge . First ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Center ; //垂直居中对齐
builder . ParagraphFormat . Alignment = ParagraphAlignment . Center ; //水平居中对齐
builder . CellFormat . Width = 40 ;
builder . Write ( "序号" ) ;
builder . InsertCell ( ) ;
builder . CellFormat . Width = 50 ;
builder . Write ( "存在问题" ) ;
builder . InsertCell ( ) ;
builder . CellFormat . Width = 60 ;
builder . Write ( "整改情况" ) ;
builder . EndRow ( ) ;
foreach ( DataRow row in dt . Rows )
{
foreach ( DataColumn column in dt . Columns )
{
builder . InsertCell ( ) ;
builder . CellFormat . VerticalMerge = Aspose . Words . Tables . CellMerge . None ;
builder . CellFormat . HorizontalMerge = Aspose . Words . Tables . CellMerge . First ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Center ; //垂直居中对齐
builder . ParagraphFormat . Alignment = ParagraphAlignment . Left ; //水平居中对齐
if ( column . ColumnName = = "序号" )
{
builder . ParagraphFormat . Alignment = ParagraphAlignment . Center ; //水平居中对齐
builder . CellFormat . Width = 40 ;
}
else if ( column . ColumnName = = "存在问题" )
{
builder . CellFormat . Width = 50 ;
}
else if ( column . ColumnName = = "整改情况" )
{
builder . CellFormat . Width = 60 ;
}
builder . Write ( row [ column . ColumnName ] . ToString ( ) ) ;
}
builder . EndRow ( ) ;
}
builder . EndTable ( ) ;
//受检单位负责人签名
Bmark = doc . Range . Bookmarks [ "TestedUnitManSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . TestedUnitManSignature ) )
{
string url = rootPath + model . TestedUnitManSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "TestedUnitManSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 150 , 50 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "TestedUnitManDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . TestedUnitManDatetime ! = null )
{
var TestedUnitManDatetime = Convert . ToDateTime ( model . TestedUnitManDatetime ) ;
Bmark . Text = TestedUnitManDatetime . Year . ToString ( ) + "年" + TestedUnitManDatetime . Month . ToString ( )
+ "月" + TestedUnitManDatetime . Day . ToString ( ) + "日" ;
}
}
Bmark = doc . Range . Bookmarks [ "TestedUnitManOpinions" ] ;
if ( Bmark ! = null )
{
if ( model . TestedUnitManOpinions ! = null )
{
Bmark . Text = model . TestedUnitManOpinions ;
}
}
//分管领导
Bmark = doc . Range . Bookmarks [ "LeaderSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . LeaderSignature ) )
{
string url = rootPath + model . LeaderSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "LeaderSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 150 , 50 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "LeaderDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . LeaderDatetime ! = null )
{
var LeaderDatetime = Convert . ToDateTime ( model . LeaderDatetime ) ;
Bmark . Text = LeaderDatetime . Year . ToString ( ) + "年" + LeaderDatetime . Month . ToString ( )
+ "月" + LeaderDatetime . Day . ToString ( ) + "日" ;
}
}
Bmark = doc . Range . Bookmarks [ "LeaderOpinions" ] ;
if ( Bmark ! = null )
{
if ( model . LeaderOpinions ! = null )
{
Bmark . Text = model . LeaderOpinions ;
}
}
//检查组
Bmark = doc . Range . Bookmarks [ "InspectionUnitSignature" ] ;
if ( Bmark ! = null )
{
if ( ! string . IsNullOrEmpty ( model . InspectionUnitSignature ) )
{
string url = rootPath + model . InspectionUnitSignature ;
DocumentBuilder builders = new DocumentBuilder ( doc ) ;
builders . MoveToBookmark ( "InspectionUnitSignature" ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builders . InsertImage ( url , 150 , 50 ) ;
}
}
}
}
Bmark = doc . Range . Bookmarks [ "InspectionUnitDatetime" ] ;
if ( Bmark ! = null )
{
if ( model . InspectionUnitDatetime ! = null )
{
var InspectionUnitDatetime = Convert . ToDateTime ( model . InspectionUnitDatetime ) ;
Bmark . Text = InspectionUnitDatetime . Year . ToString ( ) + "年" + InspectionUnitDatetime . Month . ToString ( )
+ "月" + InspectionUnitDatetime . Day . ToString ( ) + "日" ;
}
}
Bmark = doc . Range . Bookmarks [ "InspectionUnitOpinions" ] ;
if ( Bmark ! = null )
{
if ( model . InspectionUnitOpinions ! = null )
{
Bmark . Text = model . InspectionUnitOpinions ;
}
}
#region 安 全 质 量 检 查 回 复 单
builder = new Aspose . Words . DocumentBuilder ( doc ) ;
isbool = builder . MoveToBookmark ( "tab2" ) ;
if ( isbool )
{
builder . StartTable ( ) ;
builder . RowFormat . Alignment = Aspose . Words . Tables . RowAlignment . Center ;
builder . CellFormat . Borders . LineStyle = LineStyle . Single ;
builder . CellFormat . Borders . Color = System . Drawing . Color . Black ;
builder . Bold = false ;
}
builder . RowFormat . Height = 50 ;
builder . Bold = false ;
foreach ( var item in detailList )
{
builder . CellFormat . VerticalMerge = Aspose . Words . Tables . CellMerge . None ;
builder . CellFormat . HorizontalMerge = Aspose . Words . Tables . CellMerge . First ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Center ; //垂直居中对齐
builder . ParagraphFormat . Alignment = ParagraphAlignment . Left ; //水平居中对齐
builder . CellFormat . Width = 100 ;
builder . InsertCell ( ) ;
builder . Write ( "整改前" ) ;
builder . InsertCell ( ) ;
builder . Write ( "整改后" ) ;
//下一行
builder . EndRow ( ) ;
//整改前照片
builder . InsertCell ( ) ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Top ; //顶端对齐
IList < Model . AttachFile > sourlistDetail = AttachFileService . GetBeforeFileList ( item . ProNoticeCId , BLL . Const . ProblemNoticeManagerMenuId ) ;
if ( sourlistDetail ! = null & & sourlistDetail . Count > 0 )
{
string AttachUrl = "" ;
foreach ( var items in sourlistDetail )
{
if ( ! string . IsNullOrEmpty ( items . AttachUrl ) & & items . AttachUrl . ToLower ( ) . EndsWith ( ".jpg" )
| | items . AttachUrl . ToLower ( ) . EndsWith ( ".jpeg" ) | | items . AttachUrl . ToLower ( ) . EndsWith ( ".png" ) )
{
AttachUrl + = items . AttachUrl . TrimEnd ( ',' ) + "," ;
}
}
AttachUrl = AttachUrl . Remove ( AttachUrl . LastIndexOf ( "," ) , 1 ) ;
string [ ] pics = AttachUrl . Split ( ',' ) ;
foreach ( string picsitem in pics )
{
string url = rootPath + picsitem . TrimEnd ( ',' ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builder . InsertImage ( url , 200 , 180 ) ;
}
}
else
{
builder . Write ( "" ) ;
}
}
}
else
{
builder . Write ( "" ) ;
}
builder . InsertCell ( ) ;
builder . CellFormat . VerticalAlignment = Aspose . Words . Tables . CellVerticalAlignment . Top ; //顶端对齐
//整改后照片
sourlistDetail = AttachFileService . GetBeforeFileList ( item . ProNoticeCId + "ZGH" , BLL . Const . ProblemNoticeManagerMenuId ) ;
if ( sourlistDetail ! = null & & sourlistDetail . Count > 0 )
{
string AttachUrl = "" ;
foreach ( var items in sourlistDetail )
{
if ( ! string . IsNullOrEmpty ( items . AttachUrl ) & & items . AttachUrl . ToLower ( ) . EndsWith ( ".jpg" )
| | items . AttachUrl . ToLower ( ) . EndsWith ( ".jpeg" ) | | items . AttachUrl . ToLower ( ) . EndsWith ( ".png" ) )
{
AttachUrl + = items . AttachUrl . TrimEnd ( ',' ) + "," ;
}
}
AttachUrl = AttachUrl . Remove ( AttachUrl . LastIndexOf ( "," ) , 1 ) ;
string [ ] pics = AttachUrl . Split ( ',' ) ;
foreach ( string picsitem in pics )
{
string url = rootPath + picsitem . TrimEnd ( ',' ) ;
if ( ! string . IsNullOrEmpty ( url ) )
{
if ( File . Exists ( url ) )
{
builder . InsertImage ( url , 200 , 180 ) ;
}
}
else
{
builder . Write ( "" ) ;
}
}
}
else
{
builder . Write ( "" ) ;
}
//下一行
builder . EndRow ( ) ;
builder . InsertCell ( ) ;
builder . CellFormat . Width = 100 ;
builder . Write ( "问题:" + item . QueDescribe ) ;
//2.整改完成情况
builder . InsertCell ( ) ;
builder . CellFormat . Width = 100 ;
if ( ! string . IsNullOrEmpty ( item . ReSituation ) )
{
builder . Write ( "整改完成情况:" + item . ReSituation ) ;
}
else
{
builder . Write ( "" ) ;
}
builder . EndRow ( ) ;
}
#endregion
doc . Save ( newUrl ) ;
string pdfUrl = newUrl . Replace ( ".docx" , ".pdf" ) ;
libreOfficeHelp . ToPdf ( newUrl , Path . GetDirectoryName ( newUrl ) ) ;
string fileName = Path . GetFileName ( pdfUrl ) ;
FileInfo info = new FileInfo ( pdfUrl ) ;
long fileSize = info . Length ;
System . Web . HttpContext . Current . Response . Clear ( ) ;
System . Web . HttpContext . Current . Response . ContentType = "application/x-zip-compressed" ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Disposition" , "attachment;filename=" + System . Web . HttpUtility . UrlEncode ( fileName , System . Text . Encoding . UTF8 ) ) ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Length" , fileSize . ToString ( ) ) ;
System . Web . HttpContext . Current . Response . TransmitFile ( pdfUrl , 0 , fileSize ) ;
System . Web . HttpContext . Current . Response . Flush ( ) ;
System . Web . HttpContext . Current . Response . Close ( ) ;
File . Delete ( newUrl ) ;
File . Delete ( pdfUrl ) ;
}
}
else {
ShowNotify ( "只能导出已回复的数据!" , MessageBoxIcon . Warning ) ;
return ;
}
}
#endregion
#region 获 取 当 前 节 点 名 称
/// <summary>
/// 获取当前节点名称
/// </summary>
/// <param name="proNoticeId"></param>
/// <returns></returns>
protected string GetThisApprove ( object proNoticeId )
{
string result = "" ;
if ( proNoticeId ! = null )
{
var list = ProblemNoticeApprove . GetProblem_NoticeApproveByParentId ( proNoticeId . ToString ( ) + "reply" ) ;
if ( list ! = null )
{
string userids = string . Join ( "," , list . Select ( x = > x . ApproveMan ) . ToList ( ) ) ;
result = UserService . getUserNamesUserIds ( userids ) ;
}
}
return result ;
}
#endregion
}
}