333
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 1002 KiB |
|
After Width: | Height: | Size: 1002 KiB |
|
After Width: | Height: | Size: 994 KiB |
|
After Width: | Height: | Size: 994 KiB |
|
After Width: | Height: | Size: 1002 KiB |
|
After Width: | Height: | Size: 994 KiB |
|
After Width: | Height: | Size: 1002 KiB |
|
After Width: | Height: | Size: 994 KiB |
|
After Width: | Height: | Size: 1002 KiB |
|
|
@ -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}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||