This commit is contained in:
zpc 2025-08-18 23:37:08 +08:00
parent 7f0cd141a5
commit 7a20e2f53e
13 changed files with 82 additions and 24 deletions

View File

@ -14,6 +14,7 @@ using ZR.ServiceCore.Resources;
using ZR.Service.Business.IBusinessService; using ZR.Service.Business.IBusinessService;
using ZR.Service.Business; using ZR.Service.Business;
using System.Threading.Tasks; using System.Threading.Tasks;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressIntracityUpdateStoreRequest.Types;
namespace ZR.Admin.WebApi.Controllers namespace ZR.Admin.WebApi.Controllers
{ {
@ -32,6 +33,8 @@ namespace ZR.Admin.WebApi.Controllers
private readonly IStringLocalizer<SharedResource> _localizer; private readonly IStringLocalizer<SharedResource> _localizer;
public readonly ISysDeptService _deptService; public readonly ISysDeptService _deptService;
public readonly ISysDictDataService sysDictDataService; public readonly ISysDictDataService sysDictDataService;
private string domainUrl = AppSettings.GetConfig("Upload:uploadUrl");
/// <summary> /// <summary>
/// 工作记录接口 /// 工作记录接口
/// </summary> /// </summary>
@ -253,6 +256,7 @@ namespace ZR.Admin.WebApi.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("/addworkrecord")] [Route("/addworkrecord")]
[AllowAnonymous]
public async Task<IActionResult> AddCamWorkRecord([FromBody] CamRecordWorkDto parm) public async Task<IActionResult> AddCamWorkRecord([FromBody] CamRecordWorkDto parm)
{ {
if (parm.Workers == null || parm.Workers.Count == 0) if (parm.Workers == null || parm.Workers.Count == 0)
@ -263,40 +267,77 @@ namespace ZR.Admin.WebApi.Controllers
{ {
return ToResponse(ResultCode.PARAM_ERROR, "请上传图片"); return ToResponse(ResultCode.PARAM_ERROR, "请上传图片");
} }
// -当日所有照片 //-当日所有照片
//- 当日根据【人名】分类的照片 //- 当日根据【人名】分类的照片
//- 当日根据【工作内容】分类的照片 //- 当日根据【工作内容】分类的照片
//- 当日根据【部门】分类的照片 //- 当日根据【部门】分类的照片
var imageprx = ImageConverter.GetFileExtensionFromBase64(parm.Image); var imageprx = ImageConverter.GetFileExtensionFromBase64(parm.Image);
var imageName = ImageConverter.GenerateImageFileName(imageprx); var imageName = ImageConverter.GenerateImageFileName(imageprx);
var filePath = "files/" + DateTime.Now.ToString("yyyyMMdd"); var filePath = "/workfiles/" + DateTime.Now.ToString("yyyy/yyyyMMdd");
var path = Path.GetFullPath(filePath); string savePath = Path.Combine(WebHostEnvironment.WebRootPath);
//try var path = savePath + filePath;
//{ var images = ImageConverter.Base64ToImageBytes(parm.Image);
// var path = Path.GetFullPath(filePath); if (images.Length == 0)
if (!Directory.Exists(path))
{ {
Directory.CreateDirectory(path); return ToResponse(ResultCode.CUSTOM_ERROR, "图片上传失败");
}
var participantsUrl = $"{path}/参与人员/";
var photosDay = $"{path}/当日照片/";
var jobContent = $"{path}/工作内容/";
var department = $"{path}/部门/";
//添加当日照片
if (!Directory.Exists(photosDay))
{
Directory.CreateDirectory(photosDay);
}
var photosDayFileName = $"{photosDay}/{imageName}";
using (var stream = new FileStream(photosDayFileName, FileMode.Create))
{
await stream.WriteAsync(images, 0, images.Length);
}
//添加当日根据【人名】分类的照片
foreach (var work in parm.Workers)
{
var participantsUrlFIleName = $"{participantsUrl}/{work}/";
if (!Directory.Exists(participantsUrlFIleName))
{
Directory.CreateDirectory(participantsUrlFIleName);
}
participantsUrlFIleName += imageName;
using (var stream = new FileStream(participantsUrlFIleName, FileMode.Create))
{
await stream.WriteAsync(images, 0, images.Length);
}
}
//添加当日根据【工作内容】分类的照片
var jobContentUrl = $"{jobContent}/{parm.Content}/";
if (!Directory.Exists(jobContentUrl))
{
Directory.CreateDirectory(jobContentUrl);
}
jobContentUrl += imageName;
using (var stream = new FileStream(jobContentUrl, FileMode.Create))
{
await stream.WriteAsync(images, 0, images.Length);
}
//添加当日根据【部门】分类的照片
var departmentUrl = $"{department}{parm.DeptName}/";
if (!Directory.Exists(departmentUrl))
{
Directory.CreateDirectory(departmentUrl);
}
departmentUrl += imageName;
using (var stream = new FileStream(departmentUrl, FileMode.Create))
{
await stream.WriteAsync(images, 0, images.Length);
} }
// using (var stream = new FileStream(finalPath, FileMode.Create))
// {
// await stream.WriteAsync(images, 0, images.Length);
// }
//}
//catch (Exception ex)
//{
//}
//if (!string.IsNullOrEmpty(domainUrl))
//{
// finalPath = domainUrl + "/" + finalPath;
//}
//备份一下本地 //备份一下本地
var modal = parm.Adapt<CamWorkrecord>().ToCreate(HttpContext); var modal = parm.Adapt<CamWorkrecord>().ToCreate(HttpContext);
modal.CreateTime = DateTime.Now; modal.CreateTime = DateTime.Now;
modal.UpdateTime = DateTime.Now; modal.UpdateTime = DateTime.Now;
modal.ImageUrl = $"{domainUrl}{filePath}/当日照片/{imageName}";
modal = await _CamWorkrecordService.Insertable(modal).ExecuteReturnEntityAsync(); modal = await _CamWorkrecordService.Insertable(modal).ExecuteReturnEntityAsync();
var response = _CamWorkrecordService.AddCamWorkrecord(modal); var workid = modal.Id;
var workid = response.Id;
var workers = new List<CamWorker>(); var workers = new List<CamWorker>();
foreach (var item in parm.Workers) foreach (var item in parm.Workers)
{ {
@ -310,7 +351,7 @@ namespace ZR.Admin.WebApi.Controllers
workers.Add(worker); workers.Add(worker);
} }
_CamWorkerService.AsInsertable(workers).ExecuteCommand(); _CamWorkerService.AsInsertable(workers).ExecuteCommand();
return SUCCESS(response); return SUCCESS(1);
} }
} }
} }

View File

@ -48,7 +48,7 @@
"DemoMode": false, // "DemoMode": false, //
"SingleLogin": false, /// "SingleLogin": false, ///
"workId": 1, //id "workId": 1, //id
"sqlExecutionTime": 5, //Sql "sqlExecutionTime": 5, //Sql
"Upload": { "Upload": {
"uploadUrl": "http://localhost:8888", //访 "uploadUrl": "http://localhost:8888", //访
"localSavePath": "file", // wwwroot "localSavePath": "file", // wwwroot

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 KiB

View File

@ -88,7 +88,24 @@ public static class ImageConverter
// 拼接文件名 // 拼接文件名
return $"{timestamp}_{randomNumber}{extension}"; return $"{timestamp}_{randomNumber}{extension}";
} }
/// <summary>
/// 生成图片名称:时间戳(秒)+4位随机数字
/// 示例16907832451234.png
/// </summary>
/// <param name="extension">文件扩展名(例如 .png、.jpg可选默认值为 .png</param>
/// <returns>生成的图片文件名</returns>
public static string GenerateImageFileNameTime(string extension = ".png")
{
// 获取当前时间戳(秒)
string now = DateTime.Now.ToString("yyyyMMddHHmmssfff");
// 生成 4 位随机数1000 - 9999
Random random = new Random();
int randomNumber = random.Next(1000, 10000);
// 拼接文件名
return $"{now}_{randomNumber}{extension}";
}
} }