using Microsoft.AspNetCore.Mvc;
using DOAN.Model.Dto;
using DOAN.Service.MES.dev.IService;
using DOAN.Model.MES.dev.Dto;
using DOAN.Admin.WebApi.Filters;
using MiniExcelLibs;
using DOAN.Model.MES.dev.Dto;
using DOAN.Model.MES.dev;
using Org.BouncyCastle.Crypto;
//创建时间:2024-05-31
namespace DOAN.Admin.WebApi.Controllers
{
///
/// 任务执行
///
[Verify]
[Route("mes/deviceManagement/DeviceTaskExecute")]
public class DeviceTaskExecuteController : BaseController
{
///
/// 任务执行接口
///
private readonly IDeviceTaskExecuteService _DeviceTaskExecuteService;
public DeviceTaskExecuteController(IDeviceTaskExecuteService DeviceTaskExecuteService)
{
_DeviceTaskExecuteService = DeviceTaskExecuteService;
}
///
/// 查询任务执行列表
///
///
///
[HttpPost("list")]
public IActionResult QueryDeviceTaskExecute([FromBody] DeviceTaskExecuteQueryDto parm)
{
var response = _DeviceTaskExecuteService.GetList(parm);
return SUCCESS(response);
}
///
/// 查询任务执行详情
///
///
///
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:query")]
public IActionResult GetDeviceTaskExecute(string Id)
{
var response = _DeviceTaskExecuteService.GetInfo(Id);
var info = response.Adapt();
return SUCCESS(info);
}
///
/// 添加任务执行
///
///
[HttpPost]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:add")]
[Log(Title = "任务执行", BusinessType = BusinessType.INSERT)]
public IActionResult AddDeviceTaskExecute([FromBody] DeviceTaskExecuteDto parm)
{
var modal = parm.Adapt().ToCreate(HttpContext).ToUpdate(HttpContext);
var response = _DeviceTaskExecuteService.AddDeviceTaskExecute(modal);
return SUCCESS(response);
}
///
/// 更新任务执行
///
///
[HttpPut]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:edit")]
[Log(Title = "任务执行", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateDeviceTaskExecute([FromBody] DeviceTaskExecuteDto parm)
{
Console.WriteLine(HttpContext.User?.Identity?.Name);
var modal = parm.Adapt().ToUpdate(HttpContext);
var response = _DeviceTaskExecuteService.UpdateDeviceTaskExecute(modal);
return ToResponse(response);
}
///
/// 更改任务状态
///
///
///
[HttpGet("update_task_status")]
public IActionResult Update_task_status([FromQuery]DeviceTaskExecuteQueryDto2 parm)
{
if(parm == null)
{
return SUCCESS(null);
}
parm.ToUpdate();
var response = _DeviceTaskExecuteService.Update_task_status(parm);
return ToResponse(response);
}
///
/// 删除任务执行
///
///
[HttpDelete("{ids}")]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:delete")]
[Log(Title = "任务执行", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteDeviceTaskExecute(string ids)
{
if(string.IsNullOrEmpty(ids))
{
return SUCCESS(null);
}
string[] idsArr = ids.Split(",");
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
var response = _DeviceTaskExecuteService.Delete(idsArr);
return ToResponse(response);
}
///
/// 导出任务执行
///
///
[Log(Title = "任务执行", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[HttpGet("export")]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:export")]
public IActionResult Export([FromQuery] DeviceTaskExecuteQueryDto parm)
{
parm.PageNum = 1;
parm.PageSize = 100000;
var list = _DeviceTaskExecuteService.GetList(parm).Result;
if (list == null || list.Count <= 0)
{
return ToResponse(ResultCode.FAIL, "没有要导出的数据");
}
var result = ExportExcelMini(list, "任务执行", "任务执行");
return ExportExcel(result.Item2, result.Item1);
}
///
/// 清空任务执行
///
///
[Log(Title = "任务执行", BusinessType = BusinessType.CLEAN)]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:delete")]
[HttpDelete("clean")]
public IActionResult Clear()
{
if (!HttpContextExtension.IsAdmin(HttpContext))
{
return ToResponse(ResultCode.FAIL, "操作失败");
}
return SUCCESS(_DeviceTaskExecuteService.TruncateDeviceTaskExecute());
}
///
/// 导入
///
///
///
[HttpPost("importData")]
[Log(Title = "任务执行导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false)]
[ActionPermissionFilter(Permission = "deviceManagement:devicetaskexecute:import")]
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
{
List list = new();
using (var stream = formFile.OpenReadStream())
{
list = stream.Query(startCell: "A1").ToList();
}
return SUCCESS(_DeviceTaskExecuteService.ImportDeviceTaskExecute(list.Adapt>()));
}
///
/// 任务执行导入模板下载
///
///
[HttpGet("importTemplate")]
[Log(Title = "任务执行模板", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult ImportTemplateExcel()
{
var result = DownloadImportTemplate(new List() { }, "DeviceTaskExecute");
return ExportExcel(result.Item2, result.Item1);
}
///
/// 立刻派发任务
///
///
///
[HttpGet("dispatch/{id}")]
[Log(Title = "任务立刻执行")]
[AllowAnonymous]
public IActionResult ExecutionTask_point(string id)
{
if(string.IsNullOrEmpty(id))
{
return SUCCESS(null);
}
var response = _DeviceTaskExecuteService.ExecutionTask_point(id);
return SUCCESS(response);
}
///
/// 获取任务执行绑定的巡检任务和点检任务绑定的设备
///
/// device_task_execute表的主键
///
[HttpGet("get_bind_device/{id}")]
public IActionResult AchieveTaskbindDevice(string id)
{
if (string.IsNullOrEmpty(id))
{
return SUCCESS(null);
}
var response = _DeviceTaskExecuteService.AchieveTaskbindDevice(id);
return SUCCESS(response);
}
///
/// 获取设备绑定的检查项
///
/// device_rel_account_inspect表的fk_account_id 属性
/// 保养,检查
///
[HttpGet("get_bind_inspect")]
public IActionResult AchieveDevicebindInspect(int? fk_account_id,string fkPlanId,int planType)
{
if (fk_account_id == null)
{
return SUCCESS(null);
}
var response = _DeviceTaskExecuteService.AchieveDevicebindInspect(fk_account_id ?? 0, fkPlanId, planType);
return SUCCESS(response);
}
///
/// 获取检查项绑定的检查表单
///
/// device_form_config表的fk_device_inspect_id字段
///
[HttpGet("bind_form/{fk_device_inspect_id}")]
public IActionResult AchieveInspectbindForm(int? fk_device_inspect_id)
{
if (fk_device_inspect_id==null)
{
return SUCCESS(null);
}
var response = _DeviceTaskExecuteService.AchieveInspectbindForm(fk_device_inspect_id??0);
return SUCCESS(response);
}
///
/// 获取表单结果
///
///
[HttpPost("get_form_result")]
public IActionResult AchieveFormResult([FromBody] DeviceTaskExecuteResult1QueryDto_TaskExecute query)
{
if(query==null)
{
return SUCCESS(null);
}
if(query.PlanType!=1&&query.PlanType!=2)
{
return ToResponse(ResultCode.CUSTOM_ERROR, "数据不合法:只能是1或者2");
}
var response = _DeviceTaskExecuteService.AchieveFormResult2(query);
return SUCCESS(response);
}
///
/// 修改表单结果
///
///
///
[HttpPost("update_form_result")]
[AllowAnonymous]
public IActionResult UpdateFormResult([FromBody] DeviceTaskExecuteResultDto result)
{
if(result==null)
{
return SUCCESS(null);
}
result.ToUpdate_nickName(HttpContext);
int res=_DeviceTaskExecuteService.UpdateFormResult(result);
return SUCCESS(res);
}
///
/// 增加任务开始时间
///
///
///
[HttpGet("add_task_start")]
public IActionResult AddTaskStartTime(string Id)
{
if(string.IsNullOrEmpty(Id))
{
return SUCCESS(null);
}
int res = _DeviceTaskExecuteService.AddDeviceTaskExecute(Id,HttpContext.GetNickName());
return SUCCESS(res);
}
///
/// 增加任务结束时间
///
///
///
[HttpGet("add_task_finally")]
public IActionResult AddTaskFinallyTime(string Id)
{
if (string.IsNullOrEmpty(Id))
{
return SUCCESS(null);
}
int res = _DeviceTaskExecuteService.AddTaskFinallyTime(Id);
return SUCCESS(res);
}
}
}