using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using NPOI.HPSF;
using NPOI.SS.UserModel;
using NPOI.Util;
using NPOI.XWPF.UserModel;
using Ropin.Inspection.Api.Common;
using Ropin.Inspection.Common.Helper;
using Ropin.Inspection.Model;
using Ropin.Inspection.Model.Common;
using Ropin.Inspection.Model.SearchModel;
using Ropin.Inspection.Model.ViewModel;
using Ropin.Inspection.Service;
using Ropin.Inspection.Service.Interface;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Threading.Tasks;
namespace Ropin.Inspection.Api.Controllers
{
///
/// 巡检详细记录
///
public class TispRecordItemController : BaseController
{
public ILogger _logger { get; }
private readonly ITispRecordItemService _tispRecordItemService;
private readonly ITispRecordImageService _tispRecordImageService;
private readonly IReportService _reportService;
///
///
///
///
///
///
public TispRecordItemController(ITispRecordItemService tispRecordItemService, IReportService reportService, ITispRecordImageService tispRecordImageService, ILogger logger)
{
_tispRecordItemService = tispRecordItemService;
_tispRecordImageService = tispRecordImageService;
_reportService = reportService;
_logger = logger;
}
///
/// 通过巡检记录ID获取巡检信息
///
///
///
[HttpGet("GetRecordItemsAsync/{recordId}")]
public async Task GetRecordItemsAsync(Guid recordId)
{
if (Guid.Empty == recordId)
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
IEnumerable recordItems = await _tispRecordItemService.GetRecordsConditionAsync(recordId);
return new ApiResult>(recordItems);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 通过巡检记录ID获取巡检详细信息,通过内容分组
///
///
///
[HttpGet("GetRecordItemsByRecordIdAsync/{recordId}")]
[AllowAnonymous]
public async Task GetRecordItemsByRecordIdAsync(Guid recordId)
{
if (Guid.Empty == recordId)
{
return new ApiResult(ReturnCode.ArgsError);
}
try
{
List> recordItems = await _tispRecordItemService.GetRecordItemsByRecordIdAsync(recordId);
return new ApiResult>>(recordItems);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 通过详细记录ID获取巡检信息
///
///
///
[HttpGet("GetRecordItemByIdAsync/{id}")]
public async Task GetRecordItemByIdAsync(Guid id)
{
if (Guid.Empty == id)
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
IEnumerable recordItems = await _tispRecordItemService.GetRecordItemByIdAsync(id);
return new ApiResult>(recordItems);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 获取异常上报记录
///
///
///
[HttpPost("GetAlarmRecordsAsync")]
public async Task GetAlarmRecordsAsync(TispRecordAlarmSearchModel searchModel)
{
if (null == searchModel || string.IsNullOrEmpty(searchModel.C_StoreCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
IEnumerable recordItems = await _tispRecordItemService.GetAlarmRecordsAsync(searchModel);
return new ApiResult>(new PagesModel(recordItems?.ToList(), searchModel));
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 后台管理平台,获取异常上报记录
///
///
///
[HttpPost("GetAlarmRecordListAsync")]
public async Task GetAlarmRecordListAsync(TispRecordAlarmSearchModel searchModel)
{
if (null == searchModel || string.IsNullOrEmpty(searchModel.C_StoreCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
IEnumerable recordItems = await _tispRecordItemService.GetAlarmRecordListAsync(searchModel);
return new ApiResult>(new PagesModel(recordItems?.ToList(), searchModel));
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 扫巡检点二维码获取异常记录
///
///
///
///
[HttpGet("GetAlarmRecordsByQRCodeAsync/{QRCode}/{storeCode}")]
//[AllowAnonymous]
public async Task GetAlarmRecordsByQRCodeAsync(string QRCode,string storeCode)
{
try
{
if (string.IsNullOrEmpty(QRCode)|| string.IsNullOrEmpty(storeCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
IEnumerable recordItems = await _tispRecordItemService.GetAlarmRecordsByQRCodeAsync(QRCode, storeCode);
return new ApiResult>(recordItems?.ToList());
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 根据巡检点二维码获取最新巡检记录
///
///
///
///
[HttpGet("GetNewRecordByQRCodeAsync/{QRCode}/{storeCode}")]
public async Task GetNewRecordByQRCodeAsync(string QRCode,string storeCode)
{
try
{
if (string.IsNullOrEmpty(QRCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
IEnumerable recordItems = await _tispRecordItemService.GetNewRecordByQRCodeAsync(QRCode, storeCode);
return new ApiResult>(recordItems?.ToList());
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 获取异常上报记录数
///
///
///
[HttpGet("GetAlarmRecordsCountAsync")]
public async Task GetAlarmRecordsCountAsync([FromQuery] TispRecordAlarmSearchModel searchModel)
{
if (null == searchModel || string.IsNullOrEmpty(searchModel.C_StoreCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
int recordCount = await _tispRecordItemService.GetAlarmRecordsCountAsync(searchModel);
return new ApiResult(recordCount);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 获取异常处理记录
///
///
///
[HttpPost("GetAlarmRecoveryRecordsAsync")]
[AllowAnonymous]
public async Task GetAlarmRecoveryRecordsAsync(TispRecordAlarmSearchModel searchModel)
{
if (null == searchModel || string.IsNullOrEmpty(searchModel.C_StoreCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
IEnumerable recordItems = await _tispRecordItemService.GetAlarmRecoveryRecordsAsync(searchModel);
//if (null == recordItems)
// return new ApiResult>(recordItems);
//else
return new ApiResult>(new PagesModel(recordItems?.ToList(), searchModel));
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 获取异常处理记录数
///
///
///
[HttpGet("GetAlarmRecoveryRecordsCountAsync")]
public async Task GetAlarmRecoveryRecordsCountAsync([FromQuery] TispRecordAlarmSearchModel searchModel)
{
if (null == searchModel || string.IsNullOrEmpty(searchModel.C_StoreCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
int recordCount = await _tispRecordItemService.GetAlarmRecoveryRecordsCountAsync(searchModel);
return new ApiResult(recordCount);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
}
///
/// 巡检异常恢复处理
///
///
///
///
[HttpPut("RecoveryRecordItemAlarmAsync/{recordItemId}")]
public async Task RecoveryRecordItemAlarmAsync(Guid recordItemId, TispRecoveryRecordItemAlarmUpdateViewModel updateModel)
{
if (Guid.Empty == recordItemId)
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
await _tispRecordItemService.RecoveryRecordItemAlarmAsync(recordItemId, updateModel);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
return new ApiResult(ReturnCode.Success);
}
///
/// 巡检异常确认处理
///
///
///
///
[HttpPut("ConfirmRecordItemAlarmAsync/{recordItemId}")]
public async Task ConfirmRecordItemAlarmAsync(Guid recordItemId, TispRecoveryRecordItemAlarmUpdateViewModel updateModel)
{
if (Guid.Empty == recordItemId)
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
await _tispRecordItemService.ConfirmRecordItemAlarmAsync(recordItemId, updateModel);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
return new ApiResult(ReturnCode.Success);
}
///
/// 巡检异常确认处理
///
///
///
[HttpPost("ConfirmAlarmAsync")]
public async Task ConfirmAlarmAsync(TispRecoveryAlarmUpdateViewModel updateModel)
{
if (string.IsNullOrEmpty(updateModel.recordItemId))
{
return new ApiResult(ReturnCode.GeneralError);
}
Guid id = Guid.Parse(updateModel.recordItemId);
try
{
await _tispRecordItemService.ConfirmRecordItemAlarmAsync(id, new TispRecoveryRecordItemAlarmUpdateViewModel { C_Remark = updateModel.C_Remark,FilePaths = updateModel.FilePaths });
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
return new ApiResult(ReturnCode.Success);
}
///
/// 巡检异常取消处理
///
///
///
///
[HttpPut("CancelRecordItemAlarmAsync/{recordItemId}")]
public async Task CancelRecordItemAlarmAsync(Guid recordItemId, TispRecoveryRecordItemAlarmUpdateViewModel updateModel)
{
if (Guid.Empty == recordItemId)
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
await _tispRecordItemService.CancelRecordItemAlarmAsync(recordItemId, updateModel);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
return new ApiResult(ReturnCode.Success);
}
///
/// 巡检记录修改
///
///
///
///
[HttpPut("UpdateRecordItemAsync/{recordItemId}")]
public async Task UpdateRecordItemAsync(Guid recordItemId, TispRecordItemUpdateViewModel updateModel)
{
if (Guid.Empty == recordItemId)
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
await _tispRecordItemService.UpdateRecordItemAsync(recordItemId, updateModel);
}
catch (Exception ex)
{
return new ApiResult(ReturnCode.GeneralError, ex.Message);
}
return new ApiResult(ReturnCode.Success);
}
///
/// 消防设施每周检查记录
///
///
///
///
[HttpGet("GetFireFightingFacilitiesAsync")]
public async Task GetFireFightingFacilitiesAsync(DateTime start, DateTime end, string storeCode)
{
if (start.Year < 2010 || end.Year < 2010 || string.IsNullOrEmpty(storeCode))
{
return new ApiResult(ReturnCode.GeneralError);
}
try
{
object o = await _tispRecordItemService.GetFireFightingFacilitiesAsync(start, end.AddDays(1), storeCode);
ReportViewModel reportViewModel = new ReportViewModel
{
G_ID = Guid.NewGuid(),
C_StoreCode = storeCode,
I_Type = 3,
C_GroupName = "设备设施检查",
C_Name = "设备设施点检记录" + "(" + DateTime.Now.AddDays(1).ToString("yyyy/MM/dd HH:mm") + ")",
C_Status = "1",
D_CreateTime = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy/MM/dd HH:mm")),
D_Start = start,
D_End = end,
C_Data = JsonConvert.SerializeObject(o)
};
await _reportService.CreateOneAsync(reportViewModel);
return new ApiResult