333
|
|
@ -266,7 +266,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||||
{
|
{
|
||||||
return ToResponse(ResultCode.PARAM_ERROR, "请选择工作人员");
|
return ToResponse(ResultCode.PARAM_ERROR, "请选择工作人员");
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(parm.Image))
|
if (string.IsNullOrEmpty(parm.Image) && !string.IsNullOrEmpty(parm.ImageUrl))
|
||||||
{
|
{
|
||||||
return ToResponse(ResultCode.PARAM_ERROR, "请上传图片");
|
return ToResponse(ResultCode.PARAM_ERROR, "请上传图片");
|
||||||
}
|
}
|
||||||
|
|
@ -277,7 +277,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||||
//- 当日根据【部门】分类的照片
|
//- 当日根据【部门】分类的照片
|
||||||
var imageprx = ImageConverter.GetFileExtensionFromBase64(parm.Image);
|
var imageprx = ImageConverter.GetFileExtensionFromBase64(parm.Image);
|
||||||
|
|
||||||
var filePath = "/workfiles/" + DateTime.Now.ToString("yyyyMM/yyyyMMdd");
|
var filePath = "/workfiles/" + parm.RecordTime?.ToString("yyyyMM/yyyyMMdd");
|
||||||
string savePath = Path.Combine(WebHostEnvironment.WebRootPath);
|
string savePath = Path.Combine(WebHostEnvironment.WebRootPath);
|
||||||
var path = savePath + filePath;
|
var path = savePath + filePath;
|
||||||
var images = ImageConverter.Base64ToImageBytes(parm.Image);
|
var images = ImageConverter.Base64ToImageBytes(parm.Image);
|
||||||
|
|
@ -288,71 +288,77 @@ namespace ZR.Admin.WebApi.Controllers
|
||||||
|
|
||||||
if (parm.Id != null && parm.Id > 0)
|
if (parm.Id != null && parm.Id > 0)
|
||||||
{
|
{
|
||||||
//删除之前的人员照片
|
if (parm.ImageUrl.IndexOf("http") == -1)
|
||||||
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))
|
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();
|
||||||
//m.ImageUrl http://localhost:8888/workfiles/202508/20250819/当日照片/1755617080_7078.jpg
|
if (m == null)
|
||||||
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);
|
return ToResponse(ResultCode.PARAM_ERROR, "未找到该记录");
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(m.ImageUrl))
|
||||||
// 删除参与人员照片
|
|
||||||
var participantsPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", DateTime.Now.ToString("yyyyMM/yyyyMMdd"), "参与人员");
|
|
||||||
if (Directory.Exists(participantsPath))
|
|
||||||
{
|
{
|
||||||
foreach (var workerDir in Directory.GetDirectories(participantsPath))
|
//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 (IOFile.Exists(fullImagePath))
|
||||||
{
|
{
|
||||||
var workerImagePath = Path.Combine(workerDir, fileName);
|
IOFile.Delete(fullImagePath);
|
||||||
if (File.Exists(workerImagePath))
|
}
|
||||||
|
|
||||||
|
// 删除参与人员照片
|
||||||
|
var participantsPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", m.RecordTime?.ToString("yyyyMM/yyyyMMdd"), "参与人员");
|
||||||
|
if (Directory.Exists(participantsPath))
|
||||||
|
{
|
||||||
|
foreach (var workerDir in m_workers)
|
||||||
{
|
{
|
||||||
File.Delete(workerImagePath);
|
var workerImagePath = Path.Combine(participantsPath, workerDir.WorkerName, fileName);
|
||||||
|
if (IOFile.Exists(workerImagePath))
|
||||||
|
{
|
||||||
|
IOFile.Delete(workerImagePath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除工作内容照片
|
||||||
|
var jobContentPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", m.RecordTime?.ToString("yyyyMM/yyyyMMdd"), "工作内容", m.Content);
|
||||||
|
var jobContentImagePath = Path.Combine(jobContentPath, fileName);
|
||||||
|
if (IOFile.Exists(jobContentImagePath))
|
||||||
|
{
|
||||||
|
IOFile.Delete(jobContentImagePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除部门照片
|
||||||
|
var departmentPath = Path.Combine(WebHostEnvironment.WebRootPath, "workfiles", m.RecordTime?.ToString("yyyyMM/yyyyMMdd"), "部门", m.DeptName);
|
||||||
|
var departmentImagePath = Path.Combine(departmentPath, fileName);
|
||||||
|
if (IOFile.Exists(departmentImagePath))
|
||||||
|
{
|
||||||
|
IOFile.Delete(departmentImagePath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除工作内容照片
|
|
||||||
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);
|
await _CamWorkerService.DeleteAsync(it => it.WorkrecordId == parm.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int MaxSize = 300 * 1024; // 300KB = 307200 字节
|
int MaxSize = 300 * 1024; // 300KB = 307200 字节
|
||||||
// 如果图片大于300KB才压缩
|
// 如果图片大于300KB才压缩
|
||||||
|
|
||||||
if (images.Length > MaxSize)
|
if (images.Length > MaxSize)
|
||||||
{
|
{
|
||||||
images = CompressImage(images, 70); // 压缩质量 70
|
images = CompressImage(images, 70); // 压缩质量 70
|
||||||
imageprx = ".jpg";
|
imageprx = ".jpg";
|
||||||
}
|
}
|
||||||
|
|
||||||
var imageName = ImageConverter.GenerateImageFileName(imageprx);
|
var imageName = ImageConverter.GenerateImageFileName(imageprx);
|
||||||
var participantsUrl = $"{path}/参与人员/";
|
var participantsUrl = $"{path}/参与人员/";
|
||||||
var photosDay = $"{path}/当日照片/";
|
var photosDay = $"{path}/当日照片/";
|
||||||
|
|
@ -442,7 +448,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public async Task<IActionResult> DownloadZip([FromQuery] string? yearMoney)
|
public async Task<IActionResult> DownloadZip([FromQuery] string? yearMoney)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(yearMoney))
|
if (string.IsNullOrEmpty(yearMoney)|| yearMoney=="null")
|
||||||
{
|
{
|
||||||
yearMoney = DateTime.Now.ToString("yyyyMM");
|
yearMoney = DateTime.Now.ToString("yyyyMM");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 549 KiB |
|
Before Width: | Height: | Size: 749 KiB |
|
Before Width: | Height: | Size: 549 KiB |
|
Before Width: | Height: | Size: 749 KiB |
|
Before Width: | Height: | Size: 549 KiB |
|
Before Width: | Height: | Size: 749 KiB |
|
Before Width: | Height: | Size: 549 KiB |
|
Before Width: | Height: | Size: 749 KiB |
|
Before Width: | Height: | Size: 549 KiB |
|
Before Width: | Height: | Size: 749 KiB |
|
Before Width: | Height: | Size: 549 KiB |
|
Before Width: | Height: | Size: 749 KiB |
|
|
@ -71,6 +71,8 @@ namespace ZR.Model.Business.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string DeptName { get; set; }
|
public string DeptName { get; set; }
|
||||||
|
|
||||||
|
public string ImageUrl { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 图片地址
|
/// 图片地址
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ SELECT
|
||||||
CONVERT(varchar(7), CAST(r.RecordTime AS date), 120) AS YearMonth,
|
CONVERT(varchar(7), CAST(r.RecordTime AS date), 120) AS YearMonth,
|
||||||
COUNT(DISTINCT CAST(r.RecordTime AS date)) AS WorkDays
|
COUNT(DISTINCT CAST(r.RecordTime AS date)) AS WorkDays
|
||||||
FROM cam_worker w
|
FROM cam_worker w
|
||||||
LEFT JOIN cam_workrecord r ON w.workrecordId = r.Id where 1=1 {where}
|
LEFT JOIN cam_workrecord r ON w.workrecordId = r.Id where r.RecordTime is not null {where}
|
||||||
GROUP BY
|
GROUP BY
|
||||||
r.DeptName,
|
r.DeptName,
|
||||||
w.WorkerName,
|
w.WorkerName,
|
||||||
|
|
|
||||||