mh_jy_safe/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitContentDealController.cs

784 lines
33 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
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 { }
}
}
}