DeviceManager/DeviceRepair.Api/Controllers/PreserveController.cs
2024-07-22 15:50:10 +08:00

309 lines
10 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using DeviceRepair.Api.Common;
using DeviceRepair.Api.CustomAttribute;
using DeviceRepair.DataAccess;
using DeviceRepair.Models;
using DeviceRepair.Models.Record;
using NLog;
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
{
private static readonly Logger log = LogManager.GetCurrentClassLogger();
/// <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)
{
log.Error(ex);
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)
{
log.Error(ex);
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)
{
log.Error(ex);
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)
{
log.Error(ex);
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]
public APIResponseData GetSingleByEquipmentPrimaryIDAndFormPrimaryID(int PlanAutoID, int EquipmentID, int FormID)
{
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
{
return PreserveAccess.Instance.GetSingleByEquipmentPrimaryIDAndFormPrimaryID(PlanAutoID, EquipmentID, FormID);
}
catch (Exception ex)
{
log.Error(ex);
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
{
GetParams();
return PreserveAccess.Instance.GetPreserveDatas(filter, OperationInfo.OperatorCode);
}
catch (Exception ex)
{
log.Error(ex);
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)
{
log.Error(ex);
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)
{
log.Error(ex);
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
/// <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)
{
log.Error(ex);
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)
{
log.Error(ex);
apiResponseData.Code = -1;
apiResponseData.Message = ex.Message;
}
return apiResponseData;
}
}
}