using Flurl.Http;
using Infrastructure;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using OpenAuth.App;
using OpenAuth.App.Config;
using OpenAuth.App.Interface;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.App.SSO;
using Org.BouncyCastle.Ocsp;
namespace OpenAuth.WebApi.Controllers
{
///
/// 无人机执法
///
[Route("api/[controller]/[action]")]
[ApiController]
partial class DroneCaseinfoController
{
IConfiguration _configuration;
DroneCaseinfoApp _app;
WFProcessApp _wfProcessApp;
public DroneCaseinfoController(
IConfiguration configuration,
DroneCaseinfoApp app,
IAuth auth,
ILogger logger,
WFProcessApp wFProcessApp)
{
_configuration = configuration;
_app = app;
_wfProcessApp = wFProcessApp;
}
/////
///// 同步航飞库数据
/////
/////
/////
//[AllowAnonymous]
//[HttpPost]
//public async Task> AsynchDroneCaseDataOld([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
//{
// Response response = new Response();
// try
// {
// response.Result = _app.AsynchDroneCaseDataNew(req);
// if (response.Result == "同步失败")
// {
// return response;
// }
// var loginResult = await "http://localhost:1120/api/Check/Login"
// .PostJsonAsync(new
// {
// account = "System",
// passWord = "e10adc3949ba59abbe56e057f20f883e"
// }).ReceiveJson>();
// var token = loginResult.Result.Token;
// var draftResult = await "http://localhost:1120/api/WFProcess/SaveDraftWithUser"
// .WithHeader("X-Token", token)
// .PostJsonAsync(new
// {
// processId = req.model.Id,
// schemeCode = "754545",
// userId = req.model.createusername,
// instanceInfo = "{\"schemeId\":\"853793b9-6db7-47a8-b125-faaef20862f7\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}",
// isChild = 0,
// title = "后端发起流程" + req.model.case_description + DateTime.Now.ToString(),
// }).ReceiveJson>();
// var creteResult = await "http://localhost:1120/api/WFProcess/CreateWithUser"
// .WithHeader("X-Token", token)
// .PostJsonAsync(new
// {
// processId = req.model.Id,
// userId = req.model.createusername,
// isChild = 0,
// title = "后端创建" + req.model.case_description + DateTime.Now.ToString(),
// instanceInfo = "{\"schemeId\":\"853793b9-6db7-47a8-b125-faaef20862f7\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}",
// }).ReceiveJson>();
// //var aaa = await _wfProcessApp.SaveDraft(
// // req.model.Id,
// // "9",
// // "-1",
// // "{\"schemeId\":\"3a286ae0-7236-487e-ab93-1ebc03038b4c\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}",
// // null,
// // null,
// // null,
// // 0,
// // "后端发起流程" + DateTime.Now.ToString()
// // );
// //var bbb = await _wfProcessApp.Create(req.model.Id, null, "-1", null, "{\"schemeId\":\"3a286ae0-7236-487e-ab93-1ebc03038b4c\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", "后端发起流程" + DateTime.Now.ToString());
// }
// catch (Exception ex)
// {
// response.Code = 500;
// response.Message = ex.InnerException?.Message ?? ex.Message;
// }
// return response;
//}
///
/// 案件上报-流程
///
///
///
[AllowAnonymous]
[HttpPost]
public async Task> AsynchDroneCaseData([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
Response response = new Response();
try
{
var caseResult = await _app.AsynchDroneCaseDataNew(req);
if (caseResult == "同步失败")
{
response.Code = 500;
response.Result = caseResult;
return response;
}
}
catch (Exception ex)
{
response.Result = "流程发起失败";
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 新案件上报-流程
///
///
///
[AllowAnonymous]
[HttpPost]
public async Task> AsynchDroneCaseDataLast([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
Response response = new Response();
try
{
var caseResult = await _app.AsynchDroneCaseDataLast(req);
response.Message = caseResult;
response.Result = caseResult;
if (caseResult == "同步失败")
{
response.Code = 500;
response.Result = caseResult;
return response;
}
}
catch (Exception ex)
{
response.Result = "流程发起失败";
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 案件上报-流程 非粮化
///
///
///
[AllowAnonymous]
[HttpPost]
[NonAction]
public async Task> AsynchDroneCaseDataFLH([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
Response response = new Response();
try
{
var caseResult = _app.AsynchDroneCaseDataFLH(req);
if (caseResult == "同步失败")
{
response.Code = 500;
response.Result = caseResult;
return response;
}
var scode = _configuration.GetSection("AppSetting:DroneCaseInfoNonFoodSchemeCode").Value;
var schemeId = "a1d40efb-c530-47cc-94b3-100cafc4c4d8";
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
if (createFlag.Result)
{
response.Result = "流程发起成功";
}
else
{
response.Code = 500;
response.Result = createFlag.Message;
}
}
}
catch (Exception ex)
{
response.Result = "流程发起失败";
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 发起未正常发起流程的案件
///
///
///
[HttpPost]
public async Task> AsynchAddProcessCaseData()
{
Response response = new Response();
try
{
var caseResult = _app.LoadNoProcess().Result;
foreach (var item in caseResult)
{
var scode = _configuration.GetSection("AppSetting:SchemeCode").Value;
var schemeId = _configuration.GetSection("AppSetting:SchemeId").Value;
var flag = await _wfProcessApp.SaveDraftWithUser(item.Id, scode, item.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + item.Id + "\"}", null, null, null, 0, (item.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(item.Id, null, item.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + item.Id + "\"}", (item.case_description));
if (createFlag.Result)
{
response.Result = "流程发起成功";
}
else
{
response.Code = 500;
response.Result = createFlag.Message;
}
}
}
}
catch (Exception ex)
{
response.Result = "流程发起失败";
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
///
/// 计算点与shp之间的距离
///
///
[HttpGet]
[AllowAnonymous]
public async Task> GetPointShpDistance(string lng, string lat, string caseid)
{
Response response = new Response();
try
{
return await _app.GetPointShpDistance(lng, lat, caseid);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
#region 案件关闭 同步航飞库用
///
/// 关闭案件
///
///
///
[HttpPost]
[AllowAnonymous]
public async Task> CloseDroneCaseInfos([FromBody] ResubmitCloseReq req)
{
Response response = new Response();
try
{
response = await _app.CloseDroneCaseInfos(req.no, req.subject);
}
catch (Exception ex)
{
response.Code = 500;
response.Message = ex.InnerException?.Message ?? ex.Message;
}
return response;
}
#endregion
}
}