This commit is contained in:
zpc 2025-08-18 22:32:56 +08:00
parent 34d377bb65
commit 2aae829a16
11 changed files with 710 additions and 1 deletions

View File

@ -0,0 +1,100 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Model.Business.Dto;
using ZR.Model.Business;
using ZR.Service.Business.IBusinessService;
//创建时间2025-08-18
namespace ZR.Admin.WebApi.Controllers.Business
{
/// <summary>
/// 工作人员记录
/// </summary>
[Route("business/CamWorker")]
public class CamWorkerController : BaseController
{
/// <summary>
/// 工作人员记录接口
/// </summary>
private readonly ICamWorkerService _CamWorkerService;
public CamWorkerController(ICamWorkerService CamWorkerService)
{
_CamWorkerService = CamWorkerService;
}
/// <summary>
/// 查询工作人员记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "camworker:list")]
public IActionResult QueryCamWorker([FromQuery] CamWorkerQueryDto parm)
{
var response = _CamWorkerService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询工作人员记录详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "camworker:query")]
public IActionResult GetCamWorker(long Id)
{
var response = _CamWorkerService.GetInfo(Id);
var info = response.Adapt<CamWorkerDto>();
return SUCCESS(info);
}
/// <summary>
/// 添加工作人员记录
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "camworker:add")]
[Log(Title = "工作人员记录", BusinessType = BusinessType.INSERT)]
public IActionResult AddCamWorker([FromBody] CamWorkerDto parm)
{
var modal = parm.Adapt<CamWorker>().ToCreate(HttpContext);
var response = _CamWorkerService.AddCamWorker(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新工作人员记录
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "camworker:edit")]
[Log(Title = "工作人员记录", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateCamWorker([FromBody] CamWorkerDto parm)
{
var modal = parm.Adapt<CamWorker>().ToUpdate(HttpContext);
var response = _CamWorkerService.UpdateCamWorker(modal);
return ToResponse(response);
}
/// <summary>
/// 删除工作人员记录
/// </summary>
/// <returns></returns>
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "camworker:delete")]
[Log(Title = "工作人员记录", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteCamWorker([FromRoute]string ids)
{
var idArr = Tools.SplitAndConvert<long>(ids);
return ToResponse(_CamWorkerService.Delete(idArr));
}
}
}

View File

@ -0,0 +1,100 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Model.Business.Dto;
using ZR.Model.Business;
using ZR.Service.Business.IBusinessService;
//创建时间2025-08-18
namespace ZR.Admin.WebApi.Controllers.Business
{
/// <summary>
/// 工作记录
/// </summary>
[Route("business/CamWorkrecord")]
public class CamWorkrecordController : BaseController
{
/// <summary>
/// 工作记录接口
/// </summary>
private readonly ICamWorkrecordService _CamWorkrecordService;
public CamWorkrecordController(ICamWorkrecordService CamWorkrecordService)
{
_CamWorkrecordService = CamWorkrecordService;
}
/// <summary>
/// 查询工作记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "camworkrecord:list")]
public IActionResult QueryCamWorkrecord([FromQuery] CamWorkrecordQueryDto parm)
{
var response = _CamWorkrecordService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询工作记录详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "camworkrecord:query")]
public IActionResult GetCamWorkrecord(int Id)
{
var response = _CamWorkrecordService.GetInfo(Id);
var info = response.Adapt<CamWorkrecordDto>();
return SUCCESS(info);
}
/// <summary>
/// 添加工作记录
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "camworkrecord:add")]
[Log(Title = "工作记录", BusinessType = BusinessType.INSERT)]
public IActionResult AddCamWorkrecord([FromBody] CamWorkrecordDto parm)
{
var modal = parm.Adapt<CamWorkrecord>().ToCreate(HttpContext);
var response = _CamWorkrecordService.AddCamWorkrecord(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新工作记录
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "camworkrecord:edit")]
[Log(Title = "工作记录", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateCamWorkrecord([FromBody] CamWorkrecordDto parm)
{
var modal = parm.Adapt<CamWorkrecord>().ToUpdate(HttpContext);
var response = _CamWorkrecordService.UpdateCamWorkrecord(modal);
return ToResponse(response);
}
/// <summary>
/// 删除工作记录
/// </summary>
/// <returns></returns>
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "camworkrecord:delete")]
[Log(Title = "工作记录", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteCamWorkrecord([FromRoute]string ids)
{
var idArr = Tools.SplitAndConvert<int>(ids);
return ToResponse(_CamWorkrecordService.Delete(idArr, "删除工作记录"));
}
}
}

View File

@ -5,10 +5,15 @@ using Microsoft.Extensions.Options;
using MiniExcelLibs;
using ZR.Infrastructure.IPTools;
using ZR.Model.Business.Dto;
using ZR.Model.Business;
using ZR.Model.Dto;
using ZR.Model.System;
using ZR.ServiceCore.Resources;
using ZR.Service.Business.IBusinessService;
using ZR.Service.Business;
using System.Threading.Tasks;
namespace ZR.Admin.WebApi.Controllers
{
@ -28,6 +33,15 @@ namespace ZR.Admin.WebApi.Controllers
public readonly ISysDeptService _deptService;
public readonly ISysDictDataService sysDictDataService;
/// <summary>
/// 工作记录接口
/// </summary>
private readonly ICamWorkrecordService _CamWorkrecordService;
/// <summary>
/// 工作人员记录接口
/// </summary>
private readonly ICamWorkerService _CamWorkerService;
/// <summary>
/// CommonController 构造函数
/// </summary>
/// <param name="stringLocalizer"></param>
@ -41,7 +55,9 @@ namespace ZR.Admin.WebApi.Controllers
IWebHostEnvironment webHostEnvironment,
ISysFileService fileService,
ISysDeptService deptService,
ISysDictDataService sysDictDataService)
ISysDictDataService sysDictDataService,
ICamWorkrecordService _CamWorkrecordService,
ICamWorkerService camWorkerService)
{
WebHostEnvironment = webHostEnvironment;
SysFileService = fileService;
@ -49,6 +65,8 @@ namespace ZR.Admin.WebApi.Controllers
_localizer = stringLocalizer;
_deptService = deptService;
this.sysDictDataService = sysDictDataService;
this._CamWorkrecordService = _CamWorkrecordService;
_CamWorkerService = camWorkerService;
}
/// <summary>
@ -228,5 +246,43 @@ namespace ZR.Admin.WebApi.Controllers
return SUCCESS(new { logo = file?.AccessUrl ?? "", deptList, construction = list });
}
/// <summary>
/// 添加工作记录
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("/addworkrecord")]
public async Task<IActionResult> AddCamWorkRecord([FromBody] CamRecordWorkDto parm)
{
if (parm.Workers == null || parm.Workers.Count == 0)
{
return ToResponse(ResultCode.PARAM_ERROR, "请选择工作人员");
}
if (string.IsNullOrEmpty(parm.Image))
{
return ToResponse(ResultCode.PARAM_ERROR, "请上传图片");
}
var modal = parm.Adapt<CamWorkrecord>().ToCreate(HttpContext);
modal.CreateTime = DateTime.Now;
modal.UpdateTime = DateTime.Now;
modal = await _CamWorkrecordService.Insertable(modal).ExecuteReturnEntityAsync();
var response = _CamWorkrecordService.AddCamWorkrecord(modal);
var workid = response.Id;
var workers = new List<CamWorker>();
foreach (var item in parm.Workers)
{
var worker = new CamWorker()
{
WorkrecordId = workid,
WorkerName = item,
CreateTime = DateTime.Now,
UpdateTime = DateTime.Now
};
workers.Add(worker);
}
_CamWorkerService.AsInsertable(workers).ExecuteCommand();
return SUCCESS(response);
}
}
}

View File

@ -0,0 +1,37 @@
namespace ZR.Model.Business
{
/// <summary>
/// 工作人员记录
/// </summary>
[SugarTable("cam_worker")]
public class CamWorker
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public long Id { get; set; }
/// <summary>
/// 施工记录Id
/// </summary>
public int WorkrecordId { get; set; }
/// <summary>
/// 人员
/// </summary>
public string WorkerName { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
}

View File

@ -0,0 +1,72 @@
namespace ZR.Model.Business
{
/// <summary>
/// 工作记录
/// </summary>
[SugarTable("cam_workrecord")]
public class CamWorkrecord
{
/// <summary>
/// 主键
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 部门名称
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 图片
/// </summary>
public string ImageUrl { get; set; }
/// <summary>
/// 拍照时间
/// </summary>
public DateTime? RecordTime { get; set; }
/// <summary>
/// 经度
/// </summary>
public string Longitude { get; set; }
/// <summary>
/// 纬度
/// </summary>
public string Latitude { get; set; }
/// <summary>
/// 拍照地址
/// </summary>
public string Address { get; set; }
/// <summary>
/// 工作内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 状态
/// </summary>
public string StatusName { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
}

View File

@ -0,0 +1,32 @@
namespace ZR.Model.Business.Dto
{
/// <summary>
/// 工作人员记录查询对象
/// </summary>
public class CamWorkerQueryDto : PagerInfo
{
}
/// <summary>
/// 工作人员记录输入输出对象
/// </summary>
public class CamWorkerDto
{
[Required(ErrorMessage = "主键不能为空")]
public long Id { get; set; }
[Required(ErrorMessage = "施工记录Id不能为空")]
public int WorkrecordId { get; set; }
[Required(ErrorMessage = "人员不能为空")]
public string WorkerName { get; set; }
public DateTime? CreateTime { get; set; }
public DateTime? UpdateTime { get; set; }
}
}

View File

@ -0,0 +1,106 @@
namespace ZR.Model.Business.Dto
{
/// <summary>
/// 工作记录查询对象
/// </summary>
public class CamWorkrecordQueryDto : PagerInfo
{
public string DeptName { get; set; }
public string Address { get; set; }
public string Content { get; set; }
public string StatusName { get; set; }
}
/// <summary>
/// 工作记录输入输出对象
/// </summary>
public class CamWorkrecordDto
{
[Required(ErrorMessage = "主键不能为空")]
public int Id { get; set; }
public string DeptName { get; set; }
public string ImageUrl { get; set; }
public DateTime? RecordTime { get; set; }
public string Longitude { get; set; }
public string Latitude { get; set; }
public string Address { get; set; }
public string Content { get; set; }
public string StatusName { get; set; }
public string Remarks { get; set; }
public DateTime? CreateTime { get; set; }
public DateTime? UpdateTime { get; set; }
[ExcelColumn(Name = "状态")]
public string StatusNameLabel { get; set; }
}
/// <summary>
///
/// </summary>
public class CamRecordWorkDto
{
/// <summary>
/// 部门名称
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 图片地址
/// </summary>
public string Image { get; set; }
/// <summary>
/// 工作记录时间
/// </summary>
public DateTime? RecordTime { get; set; }
/// <summary>
/// 经度
/// </summary>
public string Longitude { get; set; }
/// <summary>
/// 纬度
/// </summary>
public string Latitude { get; set; }
/// <summary>
/// 工作地点
/// </summary>
public string Address { get; set; }
/// <summary>
/// 工作内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 状态
/// </summary>
public string StatusName { get; set; }
/// <summary>
///备注
/// </summary>
public string Remarks { get; set; }
/// <summary>
///
/// </summary>
public List<string> Workers { get; set; }
}
}

View File

@ -0,0 +1,80 @@
using Infrastructure.Attribute;
using Infrastructure.Extensions;
using ZR.Model.Business.Dto;
using ZR.Model.Business;
using ZR.Repository;
using ZR.Service.Business.IBusinessService;
namespace ZR.Service.Business
{
/// <summary>
/// 工作人员记录Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(ICamWorkerService), ServiceLifetime = LifeTime.Transient)]
public class CamWorkerService : BaseService<CamWorker>, ICamWorkerService
{
/// <summary>
/// 查询工作人员记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<CamWorkerDto> GetList(CamWorkerQueryDto parm)
{
var predicate = QueryExp(parm);
var response = Queryable()
//.OrderBy("Id desc")
.Where(predicate.ToExpression())
.ToPage<CamWorker, CamWorkerDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public CamWorker GetInfo(long Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加工作人员记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public CamWorker AddCamWorker(CamWorker model)
{
return Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改工作人员记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateCamWorker(CamWorker model)
{
return Update(model, true);
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<CamWorker> QueryExp(CamWorkerQueryDto parm)
{
var predicate = Expressionable.Create<CamWorker>();
return predicate;
}
}
}

View File

@ -0,0 +1,84 @@
using Infrastructure.Attribute;
using Infrastructure.Extensions;
using ZR.Model.Business.Dto;
using ZR.Model.Business;
using ZR.Repository;
using ZR.Service.Business.IBusinessService;
namespace ZR.Service.Business
{
/// <summary>
/// 工作记录Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(ICamWorkrecordService), ServiceLifetime = LifeTime.Transient)]
public class CamWorkrecordService : BaseService<CamWorkrecord>, ICamWorkrecordService
{
/// <summary>
/// 查询工作记录列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<CamWorkrecordDto> GetList(CamWorkrecordQueryDto parm)
{
var predicate = QueryExp(parm);
var response = Queryable()
//.OrderBy("Id desc")
.Where(predicate.ToExpression())
.ToPage<CamWorkrecord, CamWorkrecordDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public CamWorkrecord GetInfo(int Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加工作记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public CamWorkrecord AddCamWorkrecord(CamWorkrecord model)
{
return Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改工作记录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateCamWorkrecord(CamWorkrecord model)
{
return Update(model, true, "修改工作记录");
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<CamWorkrecord> QueryExp(CamWorkrecordQueryDto parm)
{
var predicate = Expressionable.Create<CamWorkrecord>();
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.DeptName), it => it.DeptName == parm.DeptName);
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Address), it => it.Address.Contains(parm.Address));
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Content), it => it.Content.Contains(parm.Content));
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.StatusName), it => it.StatusName == parm.StatusName);
return predicate;
}
}
}

View File

@ -0,0 +1,21 @@
using ZR.Model.Business.Dto;
using ZR.Model.Business;
namespace ZR.Service.Business.IBusinessService
{
/// <summary>
/// 工作人员记录service接口
/// </summary>
public interface ICamWorkerService : IBaseService<CamWorker>
{
PagedInfo<CamWorkerDto> GetList(CamWorkerQueryDto parm);
CamWorker GetInfo(long Id);
CamWorker AddCamWorker(CamWorker parm);
int UpdateCamWorker(CamWorker parm);
}
}

View File

@ -0,0 +1,21 @@
using ZR.Model.Business.Dto;
using ZR.Model.Business;
namespace ZR.Service.Business.IBusinessService
{
/// <summary>
/// 工作记录service接口
/// </summary>
public interface ICamWorkrecordService : IBaseService<CamWorkrecord>
{
PagedInfo<CamWorkrecordDto> GetList(CamWorkrecordQueryDto parm);
CamWorkrecord GetInfo(int Id);
CamWorkrecord AddCamWorkrecord(CamWorkrecord parm);
int UpdateCamWorkrecord(CamWorkrecord parm);
}
}