784 lines
33 KiB
C#
784 lines
33 KiB
C#
|
|
using APT.BaseData.Domain.Entities;
|
|||
|
|
using APT.BaseData.Domain.Entities.FM;
|
|||
|
|
using APT.BaseData.Domain.Enums;
|
|||
|
|
using APT.BaseData.Domain.IServices;
|
|||
|
|
using APT.BaseData.Domain.IServices.FM;
|
|||
|
|
using APT.Infrastructure.Core;
|
|||
|
|
using APT.MS.Domain.Entities.BS;
|
|||
|
|
using APT.MS.Domain.Entities.HM;
|
|||
|
|
using APT.MS.Domain.Enums;
|
|||
|
|
using APT.Utility;
|
|||
|
|
using APT.WebApi.Models;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Linq.Expressions;
|
|||
|
|
using NPOI.HSSF.Util;
|
|||
|
|
using NPOI.SS.UserModel;
|
|||
|
|
using NPOI.XSSF.UserModel;
|
|||
|
|
using System.IO;
|
|||
|
|
using APT.Infrastructure.Api;
|
|||
|
|
|
|||
|
|
namespace APT.BS.WebApi.Controllers.Api
|
|||
|
|
{
|
|||
|
|
[Route("api/BS/BSRiskSubmitContentDeal")]
|
|||
|
|
public partial class BSRiskSubmitContentDealController : AuthorizeApiController<T_BS_RISK_SUBMIT_CONTENT_DEAL>
|
|||
|
|
{
|
|||
|
|
IFMFlowPermitService MFlowPermitService { get; set; }
|
|||
|
|
IFMNotificationTaskService NotificationTaskService { get; set; }
|
|||
|
|
IPFCodeRuleService CodeRuleService { get; set; }
|
|||
|
|
IPFSysLogService SysLogService { get; set; }
|
|||
|
|
public BSRiskSubmitContentDealController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFSysLogService sysLogService)
|
|||
|
|
{
|
|||
|
|
NotificationTaskService = notificationTaskService;
|
|||
|
|
MFlowPermitService = mFlowPermitService;
|
|||
|
|
CodeRuleService = codeRuleService;
|
|||
|
|
SysLogService = sysLogService;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获得单条实体数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter">过滤实体</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("GetAll")]
|
|||
|
|
public JsonActionResult<T_BS_RISK_SUBMIT_CONTENT_DEAL> GetAll([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<T_BS_RISK_SUBMIT_CONTENT_DEAL>(() =>
|
|||
|
|
{
|
|||
|
|
ICollection<string> Include = new List<string>();
|
|||
|
|
foreach (var item in filter.Include)
|
|||
|
|
{
|
|||
|
|
if (item.Contains(".Nav_UserSignFiles"))
|
|||
|
|
{
|
|||
|
|
Include.Add(item.Split(".Nav_UserSignFiles")[0]);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
Include.Add(item);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
filter.Include = Include;
|
|||
|
|
var modelSubConDel = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(null, filter);
|
|||
|
|
if (modelSubConDel == null)
|
|||
|
|
{
|
|||
|
|
throw new Exception("获取整改单信息失败!");
|
|||
|
|
}
|
|||
|
|
List<Guid> listUserID = new List<Guid>();
|
|||
|
|
if (modelSubConDel.DEAL_USER_ID.HasValue)
|
|||
|
|
listUserID.Add(modelSubConDel.DEAL_USER_ID.Value);
|
|||
|
|
if (modelSubConDel.CHECK_USER_ID.HasValue)
|
|||
|
|
listUserID.Add(modelSubConDel.CHECK_USER_ID.Value);
|
|||
|
|
if (modelSubConDel.Nav_ApproveCheckAudit != null && modelSubConDel.Nav_ApproveCheckAudit.Nav_ApproveDetails != null && modelSubConDel.Nav_ApproveCheckAudit.Nav_ApproveDetails.Any())
|
|||
|
|
{
|
|||
|
|
foreach (var item in modelSubConDel.Nav_ApproveCheckAudit.Nav_ApproveDetails)
|
|||
|
|
{
|
|||
|
|
if (item.APPROVE_USER_ID.HasValue)
|
|||
|
|
listUserID.Add(item.APPROVE_USER_ID.Value);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (listUserID.Count > 0)
|
|||
|
|
{
|
|||
|
|
listUserID = listUserID.Distinct().ToList();
|
|||
|
|
var listUsersSign = GetEntities<T_FM_USER_SIGN_FILE>(e => listUserID.Contains(e.USER_ID), null, "Nav_ImgFile");
|
|||
|
|
if (modelSubConDel.DEAL_USER_ID.HasValue)
|
|||
|
|
modelSubConDel.Nav_UserDeal.Nav_UserSignFiles = listUsersSign.Where(e => e.USER_ID == modelSubConDel.DEAL_USER_ID.Value).ToList();
|
|||
|
|
if (modelSubConDel.CHECK_USER_ID.HasValue)
|
|||
|
|
modelSubConDel.Nav_UserCheck.Nav_UserSignFiles = listUsersSign.Where(e => e.USER_ID == modelSubConDel.CHECK_USER_ID.Value).ToList();
|
|||
|
|
if (modelSubConDel.Nav_ApproveCheckAudit != null && modelSubConDel.Nav_ApproveCheckAudit.Nav_ApproveDetails != null && modelSubConDel.Nav_ApproveCheckAudit.Nav_ApproveDetails.Any())
|
|||
|
|
{
|
|||
|
|
foreach (var item in modelSubConDel.Nav_ApproveCheckAudit.Nav_ApproveDetails)
|
|||
|
|
{
|
|||
|
|
if (item.APPROVE_USER_ID.HasValue)
|
|||
|
|
item.Nav_ApproveUser.Nav_UserSignFiles = listUsersSign.Where(e => e.USER_ID == item.APPROVE_USER_ID).ToList();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (modelSubConDel.RISK_SUBMIT_CONTENT_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
var applyDetail = GetEntity<T_BS_RISK_SUBMIT_DELAY_APPLY_DETAIL>(e => e.RISK_SUBMIT_CONTENT_ID == modelSubConDel.RISK_SUBMIT_CONTENT_ID.Value);
|
|||
|
|
modelSubConDel.Nav_ApplyDetail = applyDetail;
|
|||
|
|
}
|
|||
|
|
return modelSubConDel;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获得单条实体数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter">过滤实体</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("Get")]
|
|||
|
|
public JsonActionResult<T_BS_RISK_SUBMIT_CONTENT_DEAL> Get([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
filter.IgnoreDataRule = true;
|
|||
|
|
return WitEntity(null, filter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 生成入参对应整改记录Excel
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter">整改单IDS</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
/// <exception cref="Exception"></exception>
|
|||
|
|
[HttpPost, Route("GetOutPutData")]
|
|||
|
|
public JsonActionResult<string> GetOutPutData([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<string>(() =>
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(filter.Keyword))
|
|||
|
|
{
|
|||
|
|
throw new Exception("获取导出信息失败!");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + APT.Infrastructure.Api.AppContext.CurrentSession.UserName + "_" + new Random().Next(100, 999) + ".xlsx";
|
|||
|
|
|
|||
|
|
#region 获取填充信息 搜索
|
|||
|
|
var listIds = filter.Keyword.Split(',', StringSplitOptions.RemoveEmptyEntries);
|
|||
|
|
List<Guid> listID = new List<Guid>();
|
|||
|
|
foreach (var item in listIds)
|
|||
|
|
{
|
|||
|
|
listID.Add(new Guid(item));
|
|||
|
|
}
|
|||
|
|
var listDealOut = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => listID.Contains(e.ID), null, "Nav_SubmitContent.Nav_Department", "Nav_UserCheck", "Nav_UserDeal", "Nav_UserActualDeal", "Nav_Files.Nav_ImgFile", "Nav_FilesAfter.Nav_ImgFile").ToList();
|
|||
|
|
if (listDealOut == null || !listDealOut.Any())
|
|||
|
|
{
|
|||
|
|
listDealOut = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => e.RISK_SUBMIT_ID.HasValue && listID.Contains(e.RISK_SUBMIT_ID.Value), null, "Nav_SubmitContent.Nav_Department", "Nav_UserCheck", "Nav_UserDeal", "Nav_UserActualDeal", "Nav_Files.Nav_ImgFile", "Nav_FilesAfter.Nav_ImgFile").ToList();
|
|||
|
|
}
|
|||
|
|
if (listDealOut == null || !listDealOut.Any())
|
|||
|
|
{
|
|||
|
|
throw new Exception("未获取到导出信息!");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 填充数据 处理 与 填充
|
|||
|
|
|
|||
|
|
int rowIndex = 0;
|
|||
|
|
IWorkbook workbook = new XSSFWorkbook();
|
|||
|
|
ISheet sheet = workbook.CreateSheet("隐患整改单");
|
|||
|
|
|
|||
|
|
#region 样式 全局
|
|||
|
|
|
|||
|
|
//表头样式
|
|||
|
|
ICellStyle cellStyleHead = workbook.CreateCellStyle();
|
|||
|
|
// 设置字体
|
|||
|
|
IFont fontHead = workbook.CreateFont();
|
|||
|
|
fontHead.FontName = "Arial";
|
|||
|
|
fontHead.FontHeightInPoints = 20;
|
|||
|
|
fontHead.Boldweight = (short)FontBoldWeight.Bold;
|
|||
|
|
cellStyleHead.SetFont(fontHead);
|
|||
|
|
|
|||
|
|
// 设置对齐方式
|
|||
|
|
cellStyleHead.Alignment = HorizontalAlignment.Center;
|
|||
|
|
cellStyleHead.VerticalAlignment = VerticalAlignment.Center;
|
|||
|
|
|
|||
|
|
//表头样式
|
|||
|
|
ICellStyle cellStyleNO = workbook.CreateCellStyle();
|
|||
|
|
// 设置字体
|
|||
|
|
IFont fontNO = workbook.CreateFont();
|
|||
|
|
fontNO.FontName = "宋体";
|
|||
|
|
fontNO.FontHeightInPoints = 11;
|
|||
|
|
fontNO.Boldweight = (short)FontBoldWeight.Bold;
|
|||
|
|
cellStyleNO.Alignment = HorizontalAlignment.Right;
|
|||
|
|
cellStyleNO.VerticalAlignment = VerticalAlignment.Center;
|
|||
|
|
cellStyleNO.SetFont(fontNO);
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICellStyle cellStyleNOC = workbook.CreateCellStyle();
|
|||
|
|
// 设置字体
|
|||
|
|
IFont fontNOC = workbook.CreateFont();
|
|||
|
|
fontNOC.FontName = "宋体";
|
|||
|
|
fontNOC.FontHeightInPoints = 11;
|
|||
|
|
fontNOC.Boldweight = (short)FontBoldWeight.Bold;
|
|||
|
|
cellStyleNOC.Alignment = HorizontalAlignment.Left;
|
|||
|
|
cellStyleNOC.VerticalAlignment = VerticalAlignment.Center;
|
|||
|
|
cellStyleNOC.SetFont(fontNO);
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 设置对齐方式
|
|||
|
|
cellStyleHead.Alignment = HorizontalAlignment.Center;
|
|||
|
|
cellStyleHead.VerticalAlignment = VerticalAlignment.Center;
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICellStyle cellStyle = workbook.CreateCellStyle();
|
|||
|
|
// 设置字体
|
|||
|
|
IFont font = workbook.CreateFont();
|
|||
|
|
font.FontName = "宋体";
|
|||
|
|
font.FontHeightInPoints = 11;
|
|||
|
|
font.Boldweight = (short)FontBoldWeight.Bold;
|
|||
|
|
cellStyle.SetFont(font);
|
|||
|
|
|
|||
|
|
// 设置边框
|
|||
|
|
cellStyle.BorderBottom = BorderStyle.Thin;
|
|||
|
|
cellStyle.BorderLeft = BorderStyle.Thin;
|
|||
|
|
cellStyle.BorderRight = BorderStyle.Thin;
|
|||
|
|
cellStyle.BorderTop = BorderStyle.Thin;
|
|||
|
|
cellStyle.WrapText = true;
|
|||
|
|
|
|||
|
|
cellStyle.BottomBorderColor = HSSFColor.Black.Index;
|
|||
|
|
cellStyle.LeftBorderColor = HSSFColor.Black.Index;
|
|||
|
|
cellStyle.RightBorderColor = HSSFColor.Black.Index;
|
|||
|
|
cellStyle.TopBorderColor = HSSFColor.Black.Index;
|
|||
|
|
|
|||
|
|
// 设置对齐方式
|
|||
|
|
cellStyle.Alignment = HorizontalAlignment.Center;
|
|||
|
|
cellStyle.VerticalAlignment = VerticalAlignment.Center;
|
|||
|
|
|
|||
|
|
//检查内容样式
|
|||
|
|
ICellStyle cellStyleRight = workbook.CreateCellStyle();
|
|||
|
|
// 设置字体
|
|||
|
|
IFont fontLeft = workbook.CreateFont();
|
|||
|
|
fontLeft.FontName = "宋体";
|
|||
|
|
fontLeft.FontHeightInPoints = 11;
|
|||
|
|
fontLeft.Boldweight = (short)FontBoldWeight.Bold;
|
|||
|
|
cellStyleRight.SetFont(fontLeft);
|
|||
|
|
|
|||
|
|
// 设置边框
|
|||
|
|
cellStyleRight.BorderBottom = BorderStyle.Thin;
|
|||
|
|
cellStyleRight.BorderLeft = BorderStyle.Thin;
|
|||
|
|
cellStyleRight.BorderRight = BorderStyle.Thin;
|
|||
|
|
cellStyleRight.BorderTop = BorderStyle.Thin;
|
|||
|
|
|
|||
|
|
cellStyleRight.WrapText = true;
|
|||
|
|
//// 设置背景色
|
|||
|
|
//cellStyle.FillForegroundColor = IndexedColors.LightYellow.Index;
|
|||
|
|
//cellStyle.FillPattern = FillPattern.SolidForeground;
|
|||
|
|
|
|||
|
|
// 设置对齐方式
|
|||
|
|
cellStyleRight.Alignment = HorizontalAlignment.Right;
|
|||
|
|
cellStyleRight.VerticalAlignment = VerticalAlignment.Center;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
sheet.SetColumnWidth(0, 15 * 256);
|
|||
|
|
sheet.SetColumnWidth(1, 30 * 256);
|
|||
|
|
sheet.SetColumnWidth(2, 15 * 256);
|
|||
|
|
sheet.SetColumnWidth(3, 30 * 256);
|
|||
|
|
sheet.DefaultRowHeight = 330;
|
|||
|
|
|
|||
|
|
int fileMaxCount = 0;
|
|||
|
|
|
|||
|
|
List<Guid> listUserID = new List<Guid>();
|
|||
|
|
foreach (var item in listDealOut)
|
|||
|
|
{
|
|||
|
|
if (item.CHECK_USER_ID.HasValue && !listUserID.Contains(item.CHECK_USER_ID.Value))
|
|||
|
|
{
|
|||
|
|
listUserID.Add(item.CHECK_USER_ID.Value);
|
|||
|
|
}
|
|||
|
|
if (item.DEAL_USER_ID.HasValue && !listUserID.Contains(item.DEAL_USER_ID.Value))
|
|||
|
|
{
|
|||
|
|
listUserID.Add(item.DEAL_USER_ID.Value);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//Nav_UserCheck
|
|||
|
|
//Nav_UserDeal
|
|||
|
|
|
|||
|
|
List<T_FM_USER> listUser = null;
|
|||
|
|
T_FM_USER modelUser = null;
|
|||
|
|
//T_PF_FILE fileInfo = null;
|
|||
|
|
T_PF_IMG_FILE imgFile = null;
|
|||
|
|
string FILE_PATH = string.Empty;
|
|||
|
|
bool isFile = false;
|
|||
|
|
bool isFileA = false;
|
|||
|
|
if (listUserID != null && listUserID.Any())
|
|||
|
|
{
|
|||
|
|
listUser = GetEntities<T_FM_USER>(e => listUserID.Contains(e.ID), null, null).ToList();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var fileP = ConfigurationManager.AppSettings["Img_Local"];//文件位置
|
|||
|
|
List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE> listFile = null;
|
|||
|
|
List<T_BS_RISK_SUBMIT_CONTENT_DEAL_AFTER_FILE> listFileA = null;
|
|||
|
|
|
|||
|
|
//按信息导出
|
|||
|
|
for (int i = 0; i < listDealOut.Count; i++)
|
|||
|
|
{
|
|||
|
|
#region 表头第1行
|
|||
|
|
|
|||
|
|
IRow row = sheet.CreateRow(rowIndex);
|
|||
|
|
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, 3));// 起始行 , 结束行(合并单元格的行数相同,所以是起始行) , 起始列 ,结束列(比想要合并的最后一列多1)
|
|||
|
|
|
|||
|
|
ICell cell = row.CreateCell(0); // 在合并区域的左上角单元格写入数据
|
|||
|
|
|
|||
|
|
row.Height = 700;
|
|||
|
|
cell.SetCellValue(listDealOut[i].NAME);
|
|||
|
|
cell.CellStyle = cellStyleHead;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第2行 编号
|
|||
|
|
|
|||
|
|
rowIndex++;
|
|||
|
|
IRow rowNO = sheet.CreateRow(rowIndex);
|
|||
|
|
ICell cellNOH = rowNO.CreateCell(2);
|
|||
|
|
cellNOH.SetCellValue("编号");
|
|||
|
|
cellNOH.CellStyle = cellStyleNO;
|
|||
|
|
|
|||
|
|
ICell cellNOC = rowNO.CreateCell(3);
|
|||
|
|
cellNOC.SetCellValue(listDealOut[i].CODE);
|
|||
|
|
cellNOC.CellStyle = cellStyleNOC;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第3行 隐患地点 检查问题
|
|||
|
|
|
|||
|
|
rowIndex++;
|
|||
|
|
IRow row3 = sheet.CreateRow(rowIndex);
|
|||
|
|
ICell cell30 = row3.CreateCell(0);
|
|||
|
|
cell30.SetCellValue("隐患地点");
|
|||
|
|
cell30.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell31 = row3.CreateCell(1);
|
|||
|
|
cell31.SetCellValue(listDealOut[i]?.Nav_SubmitContent?.ADDRESS);
|
|||
|
|
cell31.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell32 = row3.CreateCell(2);
|
|||
|
|
cell32.SetCellValue("检查问题");
|
|||
|
|
cell32.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell33 = row3.CreateCell(3);
|
|||
|
|
cell33.SetCellValue(listDealOut[i]?.Nav_SubmitContent?.DESCREPTION);
|
|||
|
|
cell33.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第4行 隐患上报日期 隐患上报日期
|
|||
|
|
|
|||
|
|
rowIndex++;
|
|||
|
|
|
|||
|
|
IRow row4 = sheet.CreateRow(rowIndex);
|
|||
|
|
ICell cell40 = row4.CreateCell(0);
|
|||
|
|
cell40.SetCellValue("隐患上报日期");
|
|||
|
|
cell40.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell41 = row4.CreateCell(1);
|
|||
|
|
cell41.SetCellValue(listDealOut[i]?.Nav_SubmitContent?.CREATE_TIME?.ToString("yyyy-MM-dd"));
|
|||
|
|
cell41.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICell cell42 = row4.CreateCell(2);
|
|||
|
|
cell42.SetCellValue("隐患上报日期");
|
|||
|
|
cell42.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell43 = row4.CreateCell(3);
|
|||
|
|
cell43.SetCellValue(listDealOut[i]?.Nav_SubmitContent?.OKDATE?.ToString("yyyy-MM-dd"));
|
|||
|
|
cell43.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第4行 整改部门 整改落实人
|
|||
|
|
|
|||
|
|
rowIndex++;
|
|||
|
|
|
|||
|
|
IRow row5 = sheet.CreateRow(rowIndex);
|
|||
|
|
ICell cell50 = row5.CreateCell(0);
|
|||
|
|
cell50.SetCellValue("整改部门");
|
|||
|
|
cell50.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell51 = row5.CreateCell(1);
|
|||
|
|
cell51.SetCellValue(listDealOut[i]?.Nav_SubmitContent?.Nav_Department.NAME);
|
|||
|
|
cell51.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICell cell52 = row5.CreateCell(2);
|
|||
|
|
cell52.SetCellValue("整改落实人");
|
|||
|
|
cell52.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell53 = row5.CreateCell(3);
|
|||
|
|
cell53.SetCellValue(listDealOut[i]?.Nav_UserActualDeal?.NAME);
|
|||
|
|
cell53.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第6行 整改建议
|
|||
|
|
|
|||
|
|
rowIndex++;
|
|||
|
|
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 1, 3));
|
|||
|
|
IRow row6 = sheet.CreateRow(rowIndex);
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICell cell62 = row6.CreateCell(2);
|
|||
|
|
cell62.CellStyle = cellStyle;
|
|||
|
|
ICell cell63 = row6.CreateCell(3);
|
|||
|
|
cell63.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell60 = row6.CreateCell(0);
|
|||
|
|
cell60.SetCellValue("整改建议");
|
|||
|
|
cell60.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell61 = row6.CreateCell(1);
|
|||
|
|
cell61.SetCellValue(listDealOut[i]?.Nav_SubmitContent?.DEMAND);
|
|||
|
|
cell61.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第7行 附件
|
|||
|
|
|
|||
|
|
if (listDealOut[i].Nav_FilesAfter != null && listDealOut[i].Nav_FilesAfter.Any())
|
|||
|
|
{
|
|||
|
|
listFileA = listDealOut[i].Nav_FilesAfter.ToList();
|
|||
|
|
fileMaxCount = listFileA.Count;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
listFileA = null;
|
|||
|
|
}
|
|||
|
|
if (listDealOut[i].Nav_Files != null && listDealOut[i].Nav_Files.Any())
|
|||
|
|
{
|
|||
|
|
listFile = listDealOut[i].Nav_Files.ToList();
|
|||
|
|
fileMaxCount = Math.Max(fileMaxCount, listFile.Count);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
listFile = null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (fileMaxCount == 1)
|
|||
|
|
{
|
|||
|
|
rowIndex++;
|
|||
|
|
IRow row7 = sheet.CreateRow(rowIndex);
|
|||
|
|
row7.Height = 3000;
|
|||
|
|
ICell cell70 = row7.CreateCell(0);
|
|||
|
|
cell70.SetCellValue("附件(整改前)");
|
|||
|
|
cell70.CellStyle = cellStyle;
|
|||
|
|
//"Nav_Files"
|
|||
|
|
|
|||
|
|
ICell cell71 = row7.CreateCell(1);
|
|||
|
|
//isFile
|
|||
|
|
FILE_PATH = "";
|
|||
|
|
if (listFile != null && listFile.Any())
|
|||
|
|
{
|
|||
|
|
imgFile = listFile?[0].Nav_ImgFile;
|
|||
|
|
if (imgFile != null)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(imgFile.FILE_TYPE) && imgFile.FILE_TYPE.StartsWith("image/"))
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_PATH;
|
|||
|
|
isFile = true;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_NAME;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(FILE_PATH))
|
|||
|
|
{
|
|||
|
|
if (isFile)
|
|||
|
|
{
|
|||
|
|
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 1);
|
|||
|
|
cell71.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell71.SetCellValue(FILE_PATH);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell71.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
cell71.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
ICell cell72 = row7.CreateCell(2);
|
|||
|
|
cell72.SetCellValue("附件(整改后)");
|
|||
|
|
cell72.CellStyle = cellStyle;
|
|||
|
|
//, "Nav_FilesAfter"
|
|||
|
|
ICell cell73 = row7.CreateCell(3);
|
|||
|
|
//cell73.SetCellValue("附件(整改后)文件");
|
|||
|
|
|
|||
|
|
FILE_PATH = "";
|
|||
|
|
if (listFileA != null && listFileA.Any())
|
|||
|
|
{
|
|||
|
|
imgFile = listFileA?[0].Nav_ImgFile;
|
|||
|
|
if (imgFile != null)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(imgFile.FILE_TYPE) && imgFile.FILE_TYPE.StartsWith("image/"))
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_PATH;
|
|||
|
|
isFileA = true;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_NAME;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(FILE_PATH))
|
|||
|
|
{
|
|||
|
|
if (isFileA)
|
|||
|
|
{
|
|||
|
|
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 3);
|
|||
|
|
cell73.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell73.SetCellValue(FILE_PATH);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell73.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
cell73.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
if (!isFileA && !isFile)
|
|||
|
|
{
|
|||
|
|
row7.Height = 350;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
for (int j = 0; j < fileMaxCount; j++)
|
|||
|
|
{
|
|||
|
|
rowIndex++;
|
|||
|
|
IRow row7 = sheet.CreateRow(rowIndex);
|
|||
|
|
row7.Height = 3000;
|
|||
|
|
isFile = false;
|
|||
|
|
isFileA = false;
|
|||
|
|
if (j == 0)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex + fileMaxCount - 1, 0, 0));
|
|||
|
|
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex + fileMaxCount - 1, 2, 2));
|
|||
|
|
|
|||
|
|
ICell cell70 = row7.CreateCell(0);
|
|||
|
|
cell70.SetCellValue("附件(整改前)");
|
|||
|
|
cell70.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICell cell72 = row7.CreateCell(2);
|
|||
|
|
cell72.SetCellValue("附件(整改后)");
|
|||
|
|
cell72.CellStyle = cellStyle;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
ICell cellRiskEmpty = row7.CreateCell(0);
|
|||
|
|
cellRiskEmpty.CellStyle = cellStyle;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ICell cell71 = row7.CreateCell(1);
|
|||
|
|
//isFile
|
|||
|
|
FILE_PATH = "";
|
|||
|
|
if (listFile != null && listFile.Any() && listFile.Count >= j + 1)
|
|||
|
|
{
|
|||
|
|
imgFile = listFile?[j].Nav_ImgFile;
|
|||
|
|
if (imgFile != null)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(imgFile.FILE_TYPE) && imgFile.FILE_TYPE.StartsWith("image/"))
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_PATH;
|
|||
|
|
isFile = true;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_NAME;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(FILE_PATH))
|
|||
|
|
{
|
|||
|
|
if (isFile)
|
|||
|
|
{
|
|||
|
|
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 1);
|
|||
|
|
cell71.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell71.SetCellValue(FILE_PATH);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell71.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
cell71.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//, "Nav_FilesAfter"
|
|||
|
|
ICell cell73 = row7.CreateCell(3); //cell73.SetCellValue("附件(整改后)文件");
|
|||
|
|
FILE_PATH = "";
|
|||
|
|
if (listFileA != null && listFileA.Any() && listFileA.Count >= j + 1)
|
|||
|
|
{
|
|||
|
|
imgFile = listFileA?[j].Nav_ImgFile;
|
|||
|
|
if (imgFile != null)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(imgFile.FILE_TYPE) && imgFile.FILE_TYPE.StartsWith("image/"))
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_PATH;
|
|||
|
|
isFileA = true;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
FILE_PATH = imgFile.FILE_NAME;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(FILE_PATH))
|
|||
|
|
{
|
|||
|
|
if (isFileA)
|
|||
|
|
{
|
|||
|
|
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 3);
|
|||
|
|
cell73.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell73.SetCellValue(FILE_PATH);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell73.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
cell73.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
if (!isFileA && !isFile)
|
|||
|
|
{
|
|||
|
|
row7.Height = 350;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 编号第8行 整改责任人 验收人
|
|||
|
|
|
|||
|
|
rowIndex++;
|
|||
|
|
|
|||
|
|
IRow row8 = sheet.CreateRow(rowIndex);
|
|||
|
|
row8.Height = 1000;
|
|||
|
|
ICell cell80 = row8.CreateCell(0);
|
|||
|
|
cell80.SetCellValue("整改责任人");
|
|||
|
|
cell80.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
//Nav_UserDeal
|
|||
|
|
ICell cell81 = row8.CreateCell(1);
|
|||
|
|
//cell81.SetCellValue("Nav_UserDeal");
|
|||
|
|
FILE_PATH = "";
|
|||
|
|
//整改责任人 图片
|
|||
|
|
if (listUser != null && listDealOut[i].DEAL_USER_ID.HasValue && listDealOut[i].ISDEALSIGN)
|
|||
|
|
{
|
|||
|
|
modelUser = listUser.FirstOrDefault(e => e.ID == listDealOut[i].DEAL_USER_ID.Value);
|
|||
|
|
if (modelUser != null && modelUser.FILE_PATH != null && modelUser.FILE_PATH.Length > 0)
|
|||
|
|
{
|
|||
|
|
FILE_PATH = modelUser.FILE_PATH;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(FILE_PATH))
|
|||
|
|
{
|
|||
|
|
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 1);
|
|||
|
|
cell81.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell81.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
cell81.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
|
|||
|
|
ICell cell82 = row8.CreateCell(2);
|
|||
|
|
cell82.SetCellValue("验收人");
|
|||
|
|
cell82.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
//Nav_UserCheck
|
|||
|
|
ICell cell83 = row8.CreateCell(3);
|
|||
|
|
//cell83.SetCellValue("Nav_UserCheck");
|
|||
|
|
|
|||
|
|
//验收人 图片
|
|||
|
|
FILE_PATH = "";
|
|||
|
|
if (listUser != null && listDealOut[i].CHECK_USER_ID.HasValue && listDealOut[i].ISCHECKSIGN)
|
|||
|
|
{
|
|||
|
|
modelUser = listUser.FirstOrDefault(e => e.ID == listDealOut[i].CHECK_USER_ID.Value);
|
|||
|
|
if (modelUser != null && modelUser.FILE_PATH != null && modelUser.FILE_PATH.Length > 0)
|
|||
|
|
{
|
|||
|
|
FILE_PATH = modelUser.FILE_PATH;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(FILE_PATH))
|
|||
|
|
{
|
|||
|
|
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 3);
|
|||
|
|
cell83.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
cell83.SetCellValue("");
|
|||
|
|
}
|
|||
|
|
cell83.CellStyle = cellStyle;
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
rowIndex += 5;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region 表格数据填充
|
|||
|
|
|
|||
|
|
var fileNameP = ConfigurationManager.AppSettings["File_DownLoad"];
|
|||
|
|
|
|||
|
|
var fullFilePart = $"{fileP}{fileNameP}";
|
|||
|
|
var fullFilePath = $"{fileP}{fileNameP}{fileName}";
|
|||
|
|
|
|||
|
|
string Result = $"{fileNameP}{fileName}";
|
|||
|
|
//如果没有文件夹 创建
|
|||
|
|
//如果文件夹下有超过10个文件 按时间 删除多余的
|
|||
|
|
if (!Directory.Exists(fullFilePart))
|
|||
|
|
{
|
|||
|
|
Directory.CreateDirectory(fullFilePart);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
FileInfo[] files = new DirectoryInfo(fullFilePart).GetFiles();
|
|||
|
|
if (files.Length > 10)
|
|||
|
|
{
|
|||
|
|
var listFilesOrder = files.OrderBy(e => e.CreationTime).ToList();
|
|||
|
|
for (int i = 0; i < files.Length - 10; i++)
|
|||
|
|
{
|
|||
|
|
listFilesOrder[i].Delete();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 写入到文件
|
|||
|
|
using (FileStream file = new FileStream(fullFilePath, FileMode.Create, FileAccess.Write))
|
|||
|
|
{
|
|||
|
|
workbook.Write(file);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 关闭工作簿资源
|
|||
|
|
workbook.Close();
|
|||
|
|
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
//return $"{fileNameP}{fileName}";
|
|||
|
|
return Result;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void ShowImg(IWorkbook workbook, ISheet sheet, string fileConfig, string filePath, int rowIndex, int colIndex)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
byte[] imgBytes = System.IO.File.ReadAllBytes(fileConfig + filePath);
|
|||
|
|
int pictureIdx = workbook.AddPicture(imgBytes, PictureType.JPEG);
|
|||
|
|
// 创建Drawing对象
|
|||
|
|
XSSFDrawing drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch();
|
|||
|
|
XSSFClientAnchor anchor = new XSSFClientAnchor(10, 10, 0, 0, colIndex, rowIndex, colIndex + 1, rowIndex + 1); // 示例位置,请根据需要调整
|
|||
|
|
// 创建图片对象并插入到Excel中
|
|||
|
|
IPicture pict = drawing.CreatePicture(anchor, pictureIdx);
|
|||
|
|
pict.Resize(0.9);// 注意:此行代码可能需要根据NPOI版本和具体实现进行调整
|
|||
|
|
}
|
|||
|
|
catch { }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|