Merge remote-tracking branch 'origin/dev' into dev
commit
4f6b3e62be
|
|
@ -1402,7 +1402,6 @@ namespace OpenAuth.App.FormScheme
|
|||
{
|
||||
var sql = new StringBuilder();
|
||||
sql.Append($" UPDATE {tableName} SET ");
|
||||
|
||||
bool isfirt = true;
|
||||
foreach (var item in dbParameters)
|
||||
{
|
||||
|
|
@ -1427,7 +1426,6 @@ namespace OpenAuth.App.FormScheme
|
|||
isfirt = false;
|
||||
}
|
||||
}
|
||||
|
||||
sql.Append($" WHERE \"{pkey}\" = @{pkey} ");
|
||||
|
||||
return sql.ToString();
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ namespace OpenAuth.App.ServiceApp.DroneSsnydManage
|
|||
}
|
||||
|
||||
dataRow.Cells[13].SetCellValue(item.xiafatime.ToString());
|
||||
dataRow.Cells[13].SetCellValue(item.handle_status_name.ToString());
|
||||
dataRow.Cells[14].SetCellValue(item.handle_status_name);
|
||||
|
||||
//if (item.handle_status_id != null)
|
||||
//{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,158 @@
|
|||
using OpenAuth.App.BaseApp.Base;
|
||||
using OpenAuth.Repository.Domain;
|
||||
using OpenAuth.Repository;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using OpenAuth.App.Interface;
|
||||
using SqlSugar;
|
||||
using Infrastructure;
|
||||
using OpenAuth.App.ServiceApp.DroneSsnydManage.Export;
|
||||
using OpenAuth.App.ServiceApp.DroneSsnydManage.Request;
|
||||
using Org.BouncyCastle.Ocsp;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.DroneSsnydManage
|
||||
{
|
||||
public class DroneSsnyStatisticsApp : SqlSugarBaseApp<DroneSsnyd, SugarDbContext>
|
||||
{
|
||||
public DroneSsnyStatisticsApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<DroneSsnyd> repository, IAuth auth)
|
||||
: base(unitWork, repository, auth)
|
||||
{
|
||||
}
|
||||
#region 数据统计
|
||||
public Response<List<OffenceResp>> CaseOffence(DateTime startTime, DateTime endTime, string tubanlaiyuan)
|
||||
{
|
||||
List<OffenceResp> listResp = new List<OffenceResp>();
|
||||
double SumArea(IEnumerable<DroneSsnyd> cases, Func<DroneSsnyd, string> selector)
|
||||
{
|
||||
var sum = cases
|
||||
.Select(selector)
|
||||
.Where(area => !string.IsNullOrEmpty(area))
|
||||
.Sum(area => double.TryParse(area, out var result) ? result : 0);
|
||||
return Math.Round(sum, 2); // 保留两位小数
|
||||
}
|
||||
List<SysOrg> org = new List<SysOrg>();
|
||||
org = UnitWork.Db.Queryable<SysOrg>().Where(a => a.Level == 2 && a.ParentId == 371324).ToList();
|
||||
List<DroneSsnyd> caseList = new List<DroneSsnyd>();
|
||||
caseList = Repository.AsQueryable().Where((a) => a.synchronoustime >= startTime && a.synchronoustime <= endTime && a.is_closed == 0).ToList();
|
||||
//总计
|
||||
int xmcount = 0;//项目个数
|
||||
double xmzydsum = 0.0,//项目总用地面积
|
||||
scydsum = 0.0,//生产用地面积
|
||||
fuydsum = 0.0,//辅助用地面积
|
||||
nydsum = 0.0,//农业用地面积
|
||||
gdsum = 0.0,//耕地面积
|
||||
yjjbntsum = 0.0;//永久基本农田面积
|
||||
foreach (var item in org)
|
||||
{
|
||||
var countyIdString = item.Id.ToString();
|
||||
var casesForCounty = caseList.Where(r => r.countyid == countyIdString || r.streetid == countyIdString).ToList();
|
||||
xmcount += casesForCounty.Count;
|
||||
var xmzydmj = SumArea(casesForCounty, r => r.shenqing_area.ToString());
|
||||
xmzydsum += xmzydmj;
|
||||
var scydmj = SumArea(casesForCounty, r => r.shengchan_area.ToString());
|
||||
scydsum += scydmj;
|
||||
var scfzydmj = SumArea(casesForCounty, r => r.fuzhu_area.ToString());
|
||||
fuydsum += scfzydmj;
|
||||
var nydmj = SumArea(casesForCounty, r => r.nongyongdi_area.ToString());
|
||||
nydsum += nydmj;
|
||||
var gdmj = SumArea(casesForCounty, r => r.gengdi_area.ToString());
|
||||
gdsum += gdmj;
|
||||
var yjjbntmj = SumArea(casesForCounty, r => r.yongjiujibennongtian_area.ToString());
|
||||
yjjbntsum += yjjbntmj;
|
||||
OffenceResp offenceResp = new OffenceResp
|
||||
{
|
||||
countyid = item.Id,
|
||||
countyname = item.Name,
|
||||
xmcount = casesForCounty.Count,
|
||||
xmzydmj = Math.Round(xmzydmj, 4),
|
||||
scydmj = Math.Round(scydmj, 4),
|
||||
scfzydmj = Math.Round(scfzydmj, 4),
|
||||
nydmj = Math.Round(nydmj, 4),
|
||||
gdmj = Math.Round(gdmj, 4),
|
||||
yjjbntmj = Math.Round(yjjbntmj, 4)
|
||||
};
|
||||
listResp.Add(offenceResp);
|
||||
}
|
||||
listResp.Add(new OffenceResp
|
||||
{
|
||||
countyid = 0,
|
||||
countyname = "合计",
|
||||
xmcount = xmcount,
|
||||
xmzydmj = Math.Round(xmzydsum, 4),
|
||||
scydmj = Math.Round(scydsum, 4),
|
||||
scfzydmj = Math.Round(fuydsum, 4),
|
||||
nydmj = Math.Round(nydsum, 4),
|
||||
gdmj = Math.Round(gdsum, 4),
|
||||
yjjbntmj = Math.Round(yjjbntsum, 4)
|
||||
|
||||
});
|
||||
return new Response<List<OffenceResp>>
|
||||
{
|
||||
Result = listResp,
|
||||
Message = "获取数据成功"
|
||||
};
|
||||
}
|
||||
|
||||
//项目信息
|
||||
public async Task<Response<PageInfo<List<QueryCaseOffenceListResp>>>> GetCaseInfo(QueryCaseOffencetReq req)
|
||||
{
|
||||
List<DroneSsnyd> caseList = new List<DroneSsnyd>();
|
||||
List<string> tubanlaiyuanList = string.IsNullOrEmpty(req.tubanlaiyuan)
|
||||
? new List<string>()
|
||||
: req.tubanlaiyuan.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
var baseQuery = Repository.AsQueryable()
|
||||
.Where((a) => a.synchronoustime >= req.StartTime && a.synchronoustime <= req.EndTime)
|
||||
.Where(a => a.streetid == req.AreaId || a.countyid == req.AreaId || a.communityid == req.AreaId)
|
||||
.Where((a) => a.is_closed == 0);
|
||||
List<QueryCaseOffenceListResp> baseList = new List<QueryCaseOffenceListResp>();
|
||||
RefAsync<int> totalcount = 0;
|
||||
//switch (req.CaseType)
|
||||
//{
|
||||
// case 1:
|
||||
|
||||
// break;
|
||||
// case 2:
|
||||
// baseQuery = baseQuery.Where(a => a.handle_status_id == 5);
|
||||
// break;
|
||||
// case 3:
|
||||
// baseQuery = baseQuery.Where(a => (a.handle_status_id == 5) || a.handle_status_id != 5);
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
//}
|
||||
// 获取分页结果
|
||||
var result = await baseQuery.Select(r => new QueryCaseOffenceListResp
|
||||
{
|
||||
Id = r.Id,
|
||||
xiangmu_no = r.xiangmu_no,
|
||||
xiangmu_name = r.xiangmu_name,
|
||||
streetname = r.streetname,
|
||||
communityname = r.communityname,
|
||||
quanliren = r.quanliren,
|
||||
xingzhengquhua = r.xingzhengquhua,
|
||||
beian_no = r.beian_no,
|
||||
start_time = r.start_time,
|
||||
end_time = r.end_time,
|
||||
xiangmu_yt = r.xiangmu_yt,
|
||||
shenqing_area = r.shenqing_area,
|
||||
shengchan_area = r.shengchan_area,
|
||||
fuzhu_area = r.fuzhu_area,
|
||||
xiafatime = r.xiafatime,
|
||||
handle_status_name = r.handle_status_name
|
||||
}).ToPageListAsync(req.page, req.limit, totalcount);
|
||||
return new Response<PageInfo<List<QueryCaseOffenceListResp>>>
|
||||
{
|
||||
Result = new PageInfo<List<QueryCaseOffenceListResp>>
|
||||
{
|
||||
Items = result,
|
||||
Total = totalcount
|
||||
},
|
||||
Message = "获取数据成功"
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.DroneSsnydManage.Export
|
||||
{
|
||||
public class OffenceResp
|
||||
{
|
||||
public long countyid { get; set; }
|
||||
public string countyname { get; set; }
|
||||
/// <summary>
|
||||
/// 项目总数
|
||||
/// </summary>
|
||||
public int xmcount { get; set; }
|
||||
|
||||
public double xmzydmj { get; set; }
|
||||
public double scydmj { get; set; }
|
||||
public double scfzydmj { get; set; }
|
||||
public double nydmj { get; set; }
|
||||
public double gdmj { get; set; }
|
||||
public double yjjbntmj { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.DroneSsnydManage.Export
|
||||
{
|
||||
public class QueryCaseOffenceListResp
|
||||
{
|
||||
/// <summary>
|
||||
/// Desc:
|
||||
/// Default:
|
||||
/// Nullable:False
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:项目编号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string xiangmu_no { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:项目名称
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string xiangmu_name { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:镇
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string streetname { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:村
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string communityname { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:权利人
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string quanliren { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:行政区划
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string xingzhengquhua { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:备案编号
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string beian_no { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:项目开始时间1
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? start_time { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:项目结束时间1
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? end_time { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:项目当前用途
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string xiangmu_yt { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:设施农业申请用地面积(公顷)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public decimal? shenqing_area { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:生产设施用地(公顷)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public decimal? shengchan_area { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desc:辅助设施用地(公顷)
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public decimal? fuzhu_area { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:创建时间-下发时间
|
||||
/// Default:now()
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public DateTime? xiafatime { get; set; }
|
||||
/// <summary>
|
||||
/// Desc:处理状态 1 开工核查 2 开工问题整改 3 建中核查 4 建中问题整改 5 完工核查 6 完工问题整改 7 日常监管 8 监管问题整改 9 现场复核 99 项目终止 98 项目移交
|
||||
/// Default:
|
||||
/// Nullable:True
|
||||
/// </summary>
|
||||
public string handle_status_name { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
using OpenAuth.App.Request;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp.DroneSsnydManage.Request
|
||||
{
|
||||
public class QueryCaseOffencetReq : PageReq
|
||||
{
|
||||
public string AreaId { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int CaseType { get; set; }
|
||||
public DateTime StartTime { get; set; }
|
||||
public DateTime EndTime { get; set; }
|
||||
public string tubanlaiyuan { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -32,6 +32,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public Response<PageInfo<List<DroneSsnyd>>> TimeoutWarning(string xiangmumc, string countyid, string streetid,
|
||||
int page, int limit)
|
||||
{
|
||||
|
|
@ -59,6 +60,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public Response<PageInfo<List<DroneSsnyd>>> TimeOutAlarmList(string xiangmumc, string countyid, string streetid,
|
||||
int page, int limit)
|
||||
{
|
||||
|
|
@ -128,6 +130,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="newXiangmuNo"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<Response<bool>> MaintainNumber(string id, string newXiangmuNo)
|
||||
{
|
||||
var response = new Response<bool>();
|
||||
|
|
@ -254,6 +257,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="import"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[AllowAnonymous]
|
||||
public IActionResult TimeoutWarningExport([FromQuery] TimeOutReq import)
|
||||
{
|
||||
var data = new Response();
|
||||
|
|
@ -295,6 +299,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
/// <param name="import"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[AllowAnonymous]
|
||||
public IActionResult TimeoutAlarmExport([FromQuery] TimeOutReq import)
|
||||
{
|
||||
var data = new Response();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
using Infrastructure;
|
||||
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 DroneSsnyStatisticsController : ControllerBase
|
||||
{
|
||||
DroneSsnyStatisticsApp _app;
|
||||
public DroneSsnyStatisticsController(DroneSsnyStatisticsApp app)
|
||||
{
|
||||
_app = app;
|
||||
}
|
||||
|
||||
#region 统计
|
||||
/// <summary>
|
||||
/// 统计分析
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public Response<List<OffenceResp>> CaseOffenceForSsny(DateTime startTime, DateTime endTime, string tubanlaiyuan)
|
||||
{
|
||||
Response<List<OffenceResp>> response = new Response<List<OffenceResp>>();
|
||||
try
|
||||
{
|
||||
response = _app.CaseOffence(startTime, endTime, tubanlaiyuan);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
response.Code = 500;
|
||||
response.Message = ex.InnerException?.Message ?? ex.Message;
|
||||
}
|
||||
return response;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取穿透案件信息
|
||||
/// </summary>
|
||||
/// <param name="req"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public async Task<Response<PageInfo<List<QueryCaseOffenceListResp>>>> GetCaseInfo([FromQuery] QueryCaseOffencetReq req)
|
||||
{
|
||||
return await _app.GetCaseInfo(req);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
"AllowedHosts": "*",
|
||||
"DataProtection": "temp-keys/",
|
||||
"ConnectionStrings": {
|
||||
"OpenAuthDBContext": "PORT=5432;Database=drone_enforcement_lanling;HOST=192.168.10.163;PASSWORD=123456;USER ID=postgres;"
|
||||
"OpenAuthDBContext": "PORT=5432;Database=drone_enforcement_lanling1;HOST=192.168.10.163;PASSWORD=123456;USER ID=postgres;"
|
||||
//"OpenAuthDBContext": "PORT=5432;Database=unattended1;HOST=192.168.10.115;PASSWORD=123456;USER ID=postgres;Pooling=False" //PostgreSQL
|
||||
},
|
||||
"AppSetting": {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
"DataProtection": "temp-keys/",
|
||||
"ConnectionStrings": {
|
||||
//"OpenAuthDBContext": "PORT=5432;Database=hopetrycore;HOST=192.168.10.124;PASSWORD=123456;USER ID=postgres;",
|
||||
"OpenAuthDBContext": "PORT=5432;Database=drone_enforcement_lanling;HOST=192.168.10.163;PASSWORD=123456;USER ID=postgres;"
|
||||
"OpenAuthDBContext": "PORT=5432;Database=drone_enforcement_lanling1;HOST=192.168.10.163;PASSWORD=123456;USER ID=postgres;"
|
||||
//"OpenAuthDBContext": "PORT=5432;Database=;HOST=192.168.10.131;PASSWORD=123456;USER ID=postgres;"
|
||||
},
|
||||
"AppSetting": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue