diff --git a/ZR.Admin.WebApi/Controllers/Business/CamWorkrecordController.cs b/ZR.Admin.WebApi/Controllers/Business/CamWorkrecordController.cs index 88e3dff..862d62d 100644 --- a/ZR.Admin.WebApi/Controllers/Business/CamWorkrecordController.cs +++ b/ZR.Admin.WebApi/Controllers/Business/CamWorkrecordController.cs @@ -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 options, IWebHostEnvironment webHostEnvironment) + public CamWorkrecordController(ICamWorkrecordService CamWorkrecordService, IOptions options, IWebHostEnvironment webHostEnvironment, + ICamWorkerService camWorkerService) { _CamWorkrecordService = CamWorkrecordService; OptionsSetting = options.Value; WebHostEnvironment = webHostEnvironment; + _CamWorkerService = camWorkerService; } /// @@ -68,6 +70,11 @@ namespace ZR.Admin.WebApi.Controllers.Business var response = _CamWorkrecordService.GetInfo(Id); var info = response.Adapt(); + 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().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().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(); diff --git a/ZR.Admin.WebApi/Controllers/CommonController.cs b/ZR.Admin.WebApi/Controllers/CommonController.cs index 1efb907..1f69d5c 100644 --- a/ZR.Admin.WebApi/Controllers/CommonController.cs +++ b/ZR.Admin.WebApi/Controllers/CommonController.cs @@ -132,7 +132,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpPost] [ActionPermissionFilter(Permission = "common")] - public async Task UploadFile([FromForm] UploadDto uploadDto, IFormFile file, StoreType storeType = StoreType.ALIYUN) + public async Task 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(); foreach (var item in parm.Workers) diff --git a/ZR.Model/Business/Dto/CamWorkrecordDto.cs b/ZR.Model/Business/Dto/CamWorkrecordDto.cs index 6821cf4..6247c5b 100644 --- a/ZR.Model/Business/Dto/CamWorkrecordDto.cs +++ b/ZR.Model/Business/Dto/CamWorkrecordDto.cs @@ -65,6 +65,7 @@ namespace ZR.Model.Business.Dto /// public class CamRecordWorkDto { + public int? Id { get; set; } /// /// 部门名称 ///