608 lines
26 KiB
C#
608 lines
26 KiB
C#
|
using BLL;
|
|||
|
using Model;
|
|||
|
using Newtonsoft.Json.Linq;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Data.SqlClient;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using Aspose.Words;
|
|||
|
using Aspose.Words.Drawing;
|
|||
|
using Aspose.Words.Tables;
|
|||
|
|
|||
|
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;
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
/// <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);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|