You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

478 lines
16 KiB
C#

using Infrastructure;
using Infrastructure.Utilities.Excel;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App.ServiceApp.DroneSsnydManage;
using OpenAuth.App.ServiceApp.DroneSsnydManage.Export;
using OpenAuth.App.ServiceApp.DroneSsnydManage.Request;
using OpenAuth.Repository.Domain;
namespace OpenAuth.WebApi.Controllers.ServiceControllers
{
/// <summary>
/// 批后监管--项目信息
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
public class DroneSsnyController : ControllerBase
{
DroneSsnyApp droneSsnyApp;
public DroneSsnyController(DroneSsnyApp droneSsnyApp)
{
this.droneSsnyApp = droneSsnyApp;
}
/// <summary>
/// 到期预警
/// </summary>
/// <param name="xiangmumc">项目名称</param>
/// <param name="countyid">县</param>
/// <param name="streetid">镇</param>
/// <param name="xiangmuno">项目编号</param>
/// <param name="xiangmuyt">项目用途</param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public Response<PageInfo<List<DroneSsnyd>>> TimeoutWarning(string xiangmumc, string countyid, string streetid,
string xiangmuno, string xiangmuyt,
int page, int limit)
{
var response = new Response<PageInfo<List<DroneSsnyd>>>();
try
{
response.Result =
droneSsnyApp.TimeoutWarning(xiangmumc, countyid, streetid, xiangmuno, xiangmuyt, page, limit);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 超期报警
/// </summary>
/// <param name="xiangmumc">项目名称</param>
/// <param name="countyid">县</param>
/// <param name="streetid">镇</param>
/// <param name="xiangmuno">项目编号</param>
/// <param name="xiangmuyt">项目用途</param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public Response<PageInfo<List<DroneSsnyd>>> TimeOutAlarmList(string xiangmumc, string countyid, string streetid,
string xiangmuno, string xiangmuyt,
int page, int limit)
{
var response = new Response<PageInfo<List<DroneSsnyd>>>();
try
{
response.Result =
droneSsnyApp.TimeOutAlarmList(xiangmumc, countyid, streetid, xiangmuno, xiangmuyt, page, limit);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 历史项目
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpGet]
public Response<PageInfo<List<DroneSsnyd>>> HistoryProject([FromQuery] DroneSsnyAppPageReq req)
{
var response = new Response<PageInfo<List<DroneSsnyd>>>();
try
{
response.Result = droneSsnyApp.HistoryProject(req);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 项目变更列表
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpGet]
public Response<PageInfo<List<DroneSsnyd>>> ProjectChange([FromQuery] DroneSsnyAppPageReq req)
{
var response = new Response<PageInfo<List<DroneSsnyd>>>();
try
{
response.Result = droneSsnyApp.ProjectChange(req);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 监管信息列表
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpGet]
public async Task<Response<PageInfo<List<DroneSsnydRcjg>>>> ProjectSupervise(
[FromQuery] DroneSsnydRcjgPageReq req)
{
var response = new Response<PageInfo<List<DroneSsnydRcjg>>>();
try
{
response.Result = await droneSsnyApp.ProjectSupervise(req);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 项目维护
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> ProjectMaintain(DroneSsnydEditReq req)
{
var response = new Response<bool>();
try
{
await droneSsnyApp.ProjectMaintain(req);
response.Result = true;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 编号维护
/// </summary>
/// <param name="id"></param>
/// <param name="newXiangmuNo"></param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> MaintainNumber(string id, string newXiangmuNo)
{
var response = new Response<bool>();
try
{
await droneSsnyApp.MaintainNumber(id, newXiangmuNo);
response.Result = true;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 名称维护
/// </summary>
/// <param name="id"></param>
/// <param name="newXiangmuName"></param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> MaintainXianmuName(string id, string newXiangmuName)
{
var response = new Response<bool>();
try
{
await droneSsnyApp.MaintainXianmuName(id, newXiangmuName);
response.Result = true;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 项目续期
/// </summary>
/// <param name="id"></param>
/// <param name="newEndTime"></param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> ProjectRenewal(string id, DateTime newEndTime)
{
var response = new Response<bool>();
try
{
await droneSsnyApp.ProjectRenewal(id, newEndTime);
response.Result = true;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 停止生产
/// </summary>
/// <param name="paths"></param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> CloseProject(string id)
{
var response = new Response<bool>();
try
{
await droneSsnyApp.CloseProject(id);
response.Result = true;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
// 项目移交
/// <summary>
/// 项目移交
/// </summary>
/// <param name="id"></param>
/// <param name="newUserId"></param>
/// <returns></returns>
[HttpPost]
public async Task<Response<bool>> ProjectHandover(ProjectHandoverReq req)
{
var response = new Response<bool>();
try
{
await droneSsnyApp.ProjectHandover(req);
response.Result = true;
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 项目详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public Response<DroneSsnyd> ProjectDetail(string id)
{
var response = new Response<DroneSsnyd>();
try
{
response.Result = droneSsnyApp.ProjectDetail(id);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
/// <summary>
/// 历史项目导出
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpGet]
public IActionResult HistoryProjectExport([FromQuery] DroneSnnyAppReq req)
{
var data = droneSsnyApp.HistoryProjectList(req);
var x = ExcelExporter.ExportToExcel(data, "历史项目");
return File(x.Result.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"历史项目导出" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx");
}
/// <summary>
/// 项目变更导出
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
[HttpGet]
public IActionResult ProjectChangeExport([FromQuery] DroneSnnyAppReq req)
{
var data = droneSsnyApp.ProjectChangeExport(req);
var x = ExcelExporter.ExportToExcel(data, "项目变更");
return File(x.Result.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"项目变更导出" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx");
}
#region 预警报警导出
/// <summary>
/// 超期预警数据导出
/// </summary>
/// <param name="import"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public IActionResult TimeoutWarningExport([FromQuery] TimeOutReq import)
{
var data = new Response();
List<string> headers = null;
headers = new List<string>
{
"项目编号", "项目名称", "乡镇", "村庄", "权利人", "行政区划", "备案编号", "项目开始时间", "项目结束时间", "项目当前用途", "设施农业申请用地面积", "生产设施用地",
"辅助设施用地", "下发时间", "项目状态"
};
var response = droneSsnyApp.TimeoutWarningExport(import.xiangmumc, import.countyid, import.streetid,
import.xiangmuno, import.xiangmuyt);
if (response.Count > 0)
{
var excelRes = droneSsnyApp.ListToExcel(response, headers);
if (excelRes.Code == 200)
{
return File(excelRes.Result.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"超期预警" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
}
else
{
data.Code = excelRes.Code;
data.Message = "导出失败";
}
}
else
{
data.Code = 300;
data.Message = "暂无数据";
}
return Ok(data);
}
/// <summary>
/// 超期报警数据导出
/// </summary>
/// <param name="import"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public IActionResult TimeoutAlarmExport([FromQuery] TimeOutReq import)
{
var data = new Response();
List<string> headers = null;
headers = new List<string>
{
"项目编号", "项目名称", "乡镇", "村庄", "权利人", "行政区划", "备案编号", "项目开始时间", "项目结束时间", "项目当前用途", "设施农业申请用地面积", "生产设施用地",
"辅助设施用地", "下发时间", "项目状态"
};
var response = droneSsnyApp.TimeOutAlarmExport(import.xiangmumc, import.countyid, import.streetid,
import.xiangmuno, import.xiangmuyt);
if (response.Count > 0)
{
var excelRes = droneSsnyApp.ListToExcel(response, headers);
if (excelRes.Code == 200)
{
return File(excelRes.Result.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"超期报警" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
}
else
{
data.Code = excelRes.Code;
data.Message = "导出失败";
}
}
else
{
data.Code = 300;
data.Message = "暂无数据";
}
return Ok(data);
}
#endregion
#region 项目列表
/// <summary>
/// 项目列表
/// </summary>
/// <param name="xiangmumc">项目名称</param>
/// <param name="countyid">县</param>
/// <param name="streetid">镇</param>
/// <param name="xiangmuno">项目编号</param>
/// <param name="xiangmuyt">项目用途</param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public Response<PageInfo<List<DroneSsnyd>>> GetDronssnydList(string xiangmumc, string countyid, string streetid,
string xiangmuno, string xiangmuyt,
int page, int limit)
{
var response = new Response<PageInfo<List<DroneSsnyd>>>();
try
{
response.Result =
droneSsnyApp.GetDronssnydList(xiangmumc, countyid, streetid, xiangmuno, xiangmuyt, page, limit);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
#endregion
}
}