This commit is contained in:
zpc 2025-08-20 00:31:01 +08:00
parent 113989577d
commit 82a7d3e6aa
3 changed files with 88 additions and 7 deletions

View File

@ -33,13 +33,15 @@ namespace ZR.Admin.WebApi.Controllers.Business
private OptionsSetting OptionsSetting;
private IWebHostEnvironment WebHostEnvironment;
private readonly ICamWorkerService _CamWorkerService;
public CamWorkrecordController(ICamWorkrecordService CamWorkrecordService, IOptions<OptionsSetting> options, IWebHostEnvironment webHostEnvironment)
public CamWorkrecordController(ICamWorkrecordService CamWorkrecordService, IOptions<OptionsSetting> options, IWebHostEnvironment webHostEnvironment,
ICamWorkerService camWorkerService)
{
_CamWorkrecordService = CamWorkrecordService;
OptionsSetting = options.Value;
WebHostEnvironment = webHostEnvironment;
_CamWorkerService = camWorkerService;
}
/// <summary>
@ -68,6 +70,11 @@ namespace ZR.Admin.WebApi.Controllers.Business
var response = _CamWorkrecordService.GetInfo(Id);
var info = response.Adapt<CamWorkrecordDto>();
if (info != null)
{
var names = _CamWorkerService.AsQueryable().Where(it => it.WorkrecordId == info.Id).Select(it => it.WorkerName).ToList();
info.Worker = names != null && names.Count > 0 ? string.Join(",", names) : "";
}
return SUCCESS(info);
}
@ -81,7 +88,8 @@ namespace ZR.Admin.WebApi.Controllers.Business
public IActionResult AddCamWorkrecord([FromBody] CamWorkrecordDto parm)
{
var modal = parm.Adapt<CamWorkrecord>().ToCreate(HttpContext);
modal.CreateTime = DateTime.Now;
modal.UpdateTime = DateTime.Now;
var response = _CamWorkrecordService.AddCamWorkrecord(modal);
return SUCCESS(response);
@ -97,6 +105,7 @@ namespace ZR.Admin.WebApi.Controllers.Business
public IActionResult UpdateCamWorkrecord([FromBody] CamWorkrecordDto parm)
{
var modal = parm.Adapt<CamWorkrecord>().ToUpdate(HttpContext);
modal.UpdateTime = DateTime.Now;
var response = _CamWorkrecordService.UpdateCamWorkrecord(modal);
return ToResponse(response);
@ -148,7 +157,7 @@ namespace ZR.Admin.WebApi.Controllers.Business
});
ExcelHelper excelHelper = new ExcelHelper(WebHostEnvironment);
ExcelPackage.License.SetNonCommercialPersonal("pnaa");
var result = ExportWorkRecordExcel(list, "工作记录", 200, 70,60);
var result = ExportWorkRecordExcel(list, "工作记录", 200, 70, 60);
//ExportExcelMini(list, "工作记录", "工作记录");
//ExportExcelWithImagesInBatches(result.Item2, "工作记录", urlList, 10);
//loadExcel();

View File

@ -132,7 +132,7 @@ namespace ZR.Admin.WebApi.Controllers
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "common")]
public async Task<IActionResult> UploadFile([FromForm] UploadDto uploadDto, IFormFile file, StoreType storeType = StoreType.ALIYUN)
public async Task<IActionResult> UploadFile([FromForm] UploadDto uploadDto, IFormFile file, StoreType storeType = StoreType.LOCAL)
{
if (file == null) throw new CustomException(ResultCode.PARAM_ERROR, "上传文件不能为空");
SysFile sysfile = new();
@ -270,12 +270,13 @@ namespace ZR.Admin.WebApi.Controllers
{
return ToResponse(ResultCode.PARAM_ERROR, "请上传图片");
}
//-当日所有照片
//- 当日根据【人名】分类的照片
//- 当日根据【工作内容】分类的照片
//- 当日根据【部门】分类的照片
var imageprx = ImageConverter.GetFileExtensionFromBase64(parm.Image);
var filePath = "/workfiles/" + DateTime.Now.ToString("yyyyMM/yyyyMMdd");
string savePath = Path.Combine(WebHostEnvironment.WebRootPath);
var path = savePath + filePath;
@ -284,6 +285,67 @@ namespace ZR.Admin.WebApi.Controllers
{
return ToResponse(ResultCode.CUSTOM_ERROR, "图片上传失败");
}
if (parm.Id != null && parm.Id > 0)
{
//删除之前的人员照片
var m = await _CamWorkrecordService.AsQueryable().Where(it => it.Id == parm.Id).FirstAsync();
var m_workers = await _CamWorkerService.AsQueryable().Where(it => it.WorkrecordId == parm.Id).ToListAsync();
if (m == null)
{
return ToResponse(ResultCode.PARAM_ERROR, "未找到该记录");
}
if (!string.IsNullOrEmpty(m.ImageUrl))
{
//m.ImageUrl http://localhost:8888/workfiles/202508/20250819/当日照片/1755617080_7078.jpg
var imagePath = m.ImageUrl.Substring(m.ImageUrl.IndexOf("workfiles"));
var fullImagePath = Path.Combine(WebHostEnvironment.WebRootPath, imagePath);
// 获取文件名
var fileName = Path.GetFileName(fullImagePath);
var directoryPath = Path.GetDirectoryName(fullImagePath);
// 删除当日照片
if (File.Exists(fullImagePath))
{
File.Delete(fullImagePath);
}
// 删除参与人员照片
var participantsPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", DateTime.Now.ToString("yyyyMM/yyyyMMdd"), "参与人员");
if (Directory.Exists(participantsPath))
{
foreach (var workerDir in Directory.GetDirectories(participantsPath))
{
var workerImagePath = Path.Combine(workerDir, fileName);
if (File.Exists(workerImagePath))
{
File.Delete(workerImagePath);
}
}
}
// 删除工作内容照片
var jobContentPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", DateTime.Now.ToString("yyyyMM/yyyyMMdd"), "工作内容", m.Content);
var jobContentImagePath = Path.Combine(jobContentPath, fileName);
if (File.Exists(jobContentImagePath))
{
File.Delete(jobContentImagePath);
}
// 删除部门照片
var departmentPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", DateTime.Now.ToString("yyyyMM/yyyyMMdd"), "部门", m.DeptName);
var departmentImagePath = Path.Combine(departmentPath, fileName);
if (File.Exists(departmentImagePath))
{
File.Delete(departmentImagePath);
}
//删除施工人员数据
await _CamWorkerService.DeleteAsync(it => it.WorkrecordId == parm.Id);
}
}
int MaxSize = 300 * 1024; // 300KB = 307200 字节
// 如果图片大于300KB才压缩
if (images.Length > MaxSize)
@ -348,7 +410,16 @@ namespace ZR.Admin.WebApi.Controllers
modal.CreateTime = DateTime.Now;
modal.UpdateTime = DateTime.Now;
modal.ImageUrl = $"{domainUrl}{filePath}/当日照片/{imageName}";
modal = await _CamWorkrecordService.Insertable(modal).ExecuteReturnEntityAsync();
if (parm.Id != null && parm.Id > 0)
{
//修改实体类
await _CamWorkrecordService.UpdateAsync(modal);
}
else
{
modal = await _CamWorkrecordService.Insertable(modal).ExecuteReturnEntityAsync();
}
var workid = modal.Id;
var workers = new List<CamWorker>();
foreach (var item in parm.Workers)

View File

@ -65,6 +65,7 @@ namespace ZR.Model.Business.Dto
/// </summary>
public class CamRecordWorkDto
{
public int? Id { get; set; }
/// <summary>
/// 部门名称
/// </summary>