mh_jy_safe/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitContentDealController.cs
2025-08-25 09:56:57 +08:00

784 lines
33 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 { }
}
}
}