DeviceManager/DeviceRepair.Api/Controllers/PreserveController.cs

309 lines
10 KiB
C#
Raw Normal View History

2024-05-28 14:36:38 +00:00
using DeviceRepair.Api.Common;
using DeviceRepair.Api.CustomAttribute;
using DeviceRepair.DataAccess;
using DeviceRepair.Models;
2024-07-17 02:32:45 +00:00
using DeviceRepair.Models.Record;
2024-07-22 07:50:10 +00:00
using NLog;
2024-05-28 14:36:38 +00:00
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;
namespace DeviceRepair.Api.Controllers
{
[RoutePrefix("Api/Preserve")]
public class PreserveController : CFController
{
2024-07-22 07:50:10 +00:00
private static readonly Logger log = LogManager.GetCurrentClassLogger();
2024-05-28 14:36:38 +00:00
/// <summary>
/// 获取保养计划及对应的点检表信息
/// </summary>
/// <param name="objjson"></param>
/// <returns></returns>
[HttpGet]
[Route("GetPlanAndFormInfo")]
public APIResponseData GetPlanAndFormInfo(int pk)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "获取数据失败!" };
try
{
if (pk == 0)
throw new Exception("点检表编号是必须的参数!");
return PreserveAccess.Instance.GetPlanAndFormInfo(pk);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message.ToString();
}
return apiResponseData;
}
/// <summary>
/// 文件下载
/// </summary>
/// <param name="AutoID"></param>
/// <returns></returns>
[HttpGet]
[Route("GetFileItem")]
[HttpAuthorize]
public IHttpActionResult DownloadFile(int pk)
{
try
{
if (pk <= 0)
throw new Exception("参数【主键编号】不能为空!");
MaintenanceFormVersionInfo Item = PreserveAccess.Instance.GetMaintenanceFormVersionSingle(pk);
string filePath = Item.FormPath; // 替换为实际的文件路径
string fileName = Path.GetFileName(filePath);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
var fileStream = new FileStream(filePath, FileMode.Open);
response.Content = new StreamContent(fileStream);
response.Content.Headers.Add("FileName", fileName);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fileName
};
return ResponseMessage(response);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
return Ok(ex.Message);
}
}
[HttpGet]
[Route("GetDownPDFFile")]
[HttpAuthorize]
public IHttpActionResult DownPDFFile(int pk)
{
try
{
if (pk <= 0)
throw new Exception("参数【主键编号】不能为空!");
AttachmentInfo Item = PreserveAccess.Instance.GetAttachmentInfo(pk);
string filePath = Item.FilePath; // 替换为实际的文件路径
string fileName = Path.GetFileName(filePath);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
var fileStream = new FileStream(filePath, FileMode.Open);
response.Content = new StreamContent(fileStream);
response.Content.Headers.Add("FileName", fileName);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fileName
};
return ResponseMessage(response);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
return Ok(ex.Message);
}
}
/// <summary>
/// 根据主键编号获取对象
/// </summary>
/// <param name="objjson"></param>
/// <returns></returns>
[HttpGet]
[Route("GetPreserveRecordItemByPrimaryKey")]
[HttpAuthorize]
public APIResponseData GetPreserveRecordItemByPrimaryKey(int pk)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "数据获取失败,主键ID是必须的参数" };
try
{
if (pk <= 0)
throw new Exception("参数【主键编号】不能为空!");
apiResponseData = PreserveAccess.Instance.GetPreserveRecordItemByPrimaryKey(pk);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 通过设备主键编号及点检表主键编号获取单条保养信息记录
/// </summary>
/// <param name="EquipmentID"></param>
/// <param name="FormID"></param>
/// <returns></returns>
[HttpGet]
[Route("GetSingleByEquipmentIDAndFormID")]
[HttpAuthorize]
2024-07-17 02:32:45 +00:00
public APIResponseData GetSingleByEquipmentPrimaryIDAndFormPrimaryID(int PlanAutoID, int EquipmentID, int FormID)
2024-05-28 14:36:38 +00:00
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" };
if (EquipmentID <= 0)
return new APIResponseData { Code = -1, Message = $"参数【设备表主键编号】不能为空!" };
if (FormID <= 0)
return new APIResponseData { Code = -1, Message = $"参数【保养点检表主键编号】不能为空!" };
try
{
2024-07-17 02:32:45 +00:00
return PreserveAccess.Instance.GetSingleByEquipmentPrimaryIDAndFormPrimaryID(PlanAutoID, EquipmentID, FormID);
2024-05-28 14:36:38 +00:00
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 获取所有的保养记录数据
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpGet]
[Route("GetPreserveDatas")]
[HttpAuthorize]
public APIResponseData GetPreserveDatas(string filter)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "获取数据失败" };
try
{
2024-07-22 07:50:10 +00:00
GetParams();
return PreserveAccess.Instance.GetPreserveDatas(filter, OperationInfo.OperatorCode);
2024-05-28 14:36:38 +00:00
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 获取保养数据
/// </summary>
/// <param name="pk"></param>
/// <returns></returns>
[HttpGet]
[Route("GetDetailById")]
[HttpAuthorize]
public APIResponseData GetDetailById(int pk)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "数据获取失败,主键ID是必须的参数" };
try
{
if (pk <= 0)
throw new Exception("主键ID是必须的参数");
apiResponseData = PreserveAccess.Instance.GetPreserveDetailByID(pk);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 插入保养数据
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("Insertable")]
public APIResponseData Insertable(MaintenanceRecordSubmit entity)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" };
if (entity == null)
return apiResponseData;
try
{
base.GetParams();
apiResponseData = PreserveAccess.Instance.Insertable(entity, OperationInfo);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-05-28 14:36:38 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
2024-07-17 02:32:45 +00:00
/// <summary>
/// 获取设备保养记录信息
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetRecordHisView"), HttpAuthorize]
public APIResponseData GetRecordHisView(MaintenanceFilterModel filter)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "数据获取失败,主键ID是必须的参数" };
try
{
apiResponseData = PreserveAccess.Instance.GetRecordHisView(filter);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-07-17 02:32:45 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <summary>
/// 获取保养计划的全部保养记录
/// </summary>
/// <param name="PlanPrimaryKey"></param>
/// <returns></returns>
[HttpGet, Route("GetPreserveDetailAll"), HttpAuthorize]
public APIResponseData GetPreserveDetailAll(int PlanPrimaryKey)
{
APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "数据获取失败,主键ID是必须的参数" };
try
{
apiResponseData = PreserveAccess.Instance.GetPreserveDetailAll(PlanPrimaryKey);
}
catch (Exception ex)
{
2024-07-22 07:50:10 +00:00
log.Error(ex);
2024-07-17 02:32:45 +00:00
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
2024-05-28 14:36:38 +00:00
}
}