Infrastructure/OpenAuth.App/ServiceApp/DroneCaseInfo/DroneCaseInfoApp.cs

4177 lines
179 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using OpenAuth.App.BaseApp.Base;
using OpenAuth.App.Interface;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.App.ServiceApp.DroneCaseInfo
{
public class DroneCaseinfoApp : SqlSugarBaseApp<DroneCaseinfo, SugarDbContext>
{
IConfiguration _configuration;
//private IOptions<AppSettingsModel> _options;
private ILogger<DroneCaseinfoApp> _logger;
public DroneCaseinfoApp(
ISugarUnitOfWork<SugarDbContext> unitWork,
ISimpleClient<DroneCaseinfo> repository,
IAuth auth,
ILogger<DroneCaseinfoApp> logger) : base(unitWork, repository, auth)
{
_logger = logger;
}
//处理状态
//List<QueryHandleStatusListReq> handleStatusList = new List<QueryHandleStatusListReq>()
//{
// new QueryHandleStatusListReq(){ id = 0,name="未办理"},
// new QueryHandleStatusListReq(){ id = 1,name="办理中"},
// new QueryHandleStatusListReq(){ id = 2,name="已办结"},
//};
///// <summary>
///// 构造函数
///// </summary>
///// <param name="unitWork"></param>
///// <param name="repository"></param>
///// <param name="auth"></param>
///// <param name="configuration"></param>
//public DroneCaseinfoApp(ISugarUnitOfWork<SugarDbContext> unitWork, IOptions<AppSettingsModel> options, IRepository<DroneCaseinfo, OpenAuthDBContext> repository, IAuth auth, IConfiguration configuration, ILogger<DroneCaseinfoApp> logger) : base(unitWork, repository, auth)
//{
// _configuration = configuration;
// _options = options;
// _auth = auth;
// _logger = logger;
//}
//#region 案件
///// <summary>
///// 无人机添加案件
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddDroneCaseByDrone(AddDroneCaseByDroneReq req)
//{
// var user = _auth.GetCurrentUser().User;
// Sugar_Drone_caseinfo model = req.MapTo<Sugar_Drone_caseinfo>();
// var picList = req.pic_list;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// model.Init(user, db);
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// if (model.lng != 0 && model.lat != 0)
// {
// //根据经纬度查询地区
// var lngLat = GetOrgAreaByPoint(Convert.ToDecimal(model.lng), Convert.ToDecimal(model.lat));
// //县
// model.countyid = lngLat["countyid"].ToString();
// var countyname = db.Queryable<Sugar_Org>().Where(c => c.Id == model.countyid).First();
// if (countyname != null)
// {
// model.countyname = countyname.Name;
// }
// //镇
// model.streetid = lngLat["streetid"].ToString();
// var streetname = db.Queryable<Sugar_Org>().Where(c => c.Id == model.streetid).First();
// if (streetname != null)
// {
// model.streetname = streetname.Name;
// }
// //乡社区
// model.communityid = lngLat["communityid"].ToString();
// var communityname = db.Queryable<Sugar_Org>().Where(c => c.Id == model.communityid).First();
// if (communityname != null)
// {
// model.communityname = communityname.Name;
// }
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Insertable(model).ExecuteCommand();
// //新增文件数据
// db.Insertable(filesList).ExecuteCommand();
// });
// Task.Run(() =>
// {
// //推送websocket
// SendWebSocketMessage();
// });
// if (transFlag.IsSuccess)
// return model.Id;
// else
// throw new Exception("上报失败");
// }
//}
//public async Task<string> BackhaulDroneCaseByDrone(BackhaulDroneCaseByDroneReq req)
//{
// var user = new User { Id = req.userid, Name = req.username };
// Sugar_Drone_caseinfo model = req.MapTo<Sugar_Drone_caseinfo>();
// var picList = req.pic_list;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// model.Init(user, db);
// //图片
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// if (req.pic_list.Count > 0)
// {
// var response = await BackhaulUpload(req.pic_list);
// if (response.Code == 200 && response.Result.Count > 0)
// {
// for (int i = 0; i < response.Result.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = response.Result[i].FilePath;
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// }
// }
// if (model.lng != 0 && model.lat != 0)
// {
// //根据经纬度查询地区
// var lngLat = GetOrgAreaByPoint(Convert.ToDecimal(model.lng), Convert.ToDecimal(model.lat));
// //县
// model.countyid = lngLat["countyid"].ToString();
// var countyname = await db.Queryable<Sugar_Org>().Where(c => c.Id == model.countyid).FirstAsync();
// if (countyname != null)
// {
// model.countyname = countyname.Name;
// }
// //镇
// model.streetid = lngLat["streetid"].ToString();
// var streetname = await db.Queryable<Sugar_Org>().Where(c => c.Id == model.streetid).FirstAsync();
// if (streetname != null)
// {
// model.streetname = streetname.Name;
// }
// //乡社区
// model.communityid = lngLat["communityid"].ToString();
// var communityname = await db.Queryable<Sugar_Org>().Where(c => c.Id == model.communityid).FirstAsync();
// if (communityname != null)
// {
// model.communityname = communityname.Name;
// }
// }
// //使用事务提交数据
// var transFlag = await db.UseTranAsync(async () =>
// {
// //新增案件数据
// await db.Insertable(model).ExecuteCommandAsync();
// //新增文件数据
// await db.Insertable(filesList).ExecuteCommandAsync();
// });
// if (transFlag.IsSuccess)
// return model.Id;
// else
// throw new Exception("上报失败");
// }
//}
//public async Task<Response<List<UploadFile>>> BackhaulUpload(List<string> urls)
//{
// var picServerUrl = _configuration.GetSection("PictureFilesApi").Value;
// var uploadUrl = picServerUrl + "api/Platform/UploadNoReName?project=DroneEnforcement";
// //读取图片地址、上传到航飞的图片服务器
// var formData = new MultipartFormDataContent();
// //formData.Add(new StringContent("DroneEnforcement"), "project");
// foreach (var item in urls)
// {
// //读取图片流
// var image = await item.GetBytesAsync();
// //获取图片名称
// int lastSlashIndex = item.LastIndexOf('/');
// string fileName = item.Substring(lastSlashIndex + 1);
// formData.Add(new ByteArrayContent(image), "files", fileName);
// //var fileContent = new ByteArrayContent(image);
// //fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
// //{
// // Name = "files",
// // FileName = fileName // 设置文件名
// //};
// //formData.Add(fileContent);
// }
// var flurlRespone = await uploadUrl.PostAsync(formData);
// var respone = new Response<List<UploadFile>>();
// if (flurlRespone.StatusCode == 200)
// {
// var reslut = await flurlRespone.ResponseMessage.Content.ReadAsStringAsync();
// if (!string.IsNullOrEmpty(reslut))
// {
// respone = JsonConvert.DeserializeObject<Response<List<UploadFile>>>(reslut);
// }
// }
// else
// {
// respone.Code = flurlRespone.StatusCode;
// respone.Result = null;
// }
// return respone;
//}
[HttpGet]
public string Test(string txt)
{
return txt;
}
///// <summary>
///// 上报案件
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddDroneCaseInfo(AddOrUpdateDroneCaseInfoReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件实体
// var model = req.info;
// model.Init(user, db);
// //区分权限,创建人就是判读人
// model.identification_userid = model.createuser;
// model.identification_user = model.identification_user;
// if (model.lng != 0 && model.lat != 0)
// {
// //根据经纬度查询地区
// var lngLat = GetOrgAreaByPoint(Convert.ToDecimal(model.lng), Convert.ToDecimal(model.lat));
// //县
// model.countyid = lngLat["countyid"].ToString();
// var countyname = db.Queryable<Sugar_Org>().Where(c => c.Id == model.countyid).First();
// if (countyname != null)
// {
// model.countyname = countyname.Name;
// }
// //镇
// model.streetid = lngLat["streetid"].ToString();
// var streetname = db.Queryable<Sugar_Org>().Where(c => c.Id == model.streetid).First();
// if (streetname != null)
// {
// model.streetname = streetname.Name;
// }
// //乡社区
// model.communityid = lngLat["communityid"].ToString();
// var communityname = db.Queryable<Sugar_Org>().Where(c => c.Id == model.communityid).First();
// if (communityname != null)
// {
// model.communityname = communityname.Name;
// }
// }
// var picList = req.pic_list;
// var videoList = req.video_list;
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //关联案件
// var caserelationList = req.relationCaseNo;
// List<Sugar_Drone_caseinfo_relation> relationList = new List<Sugar_Drone_caseinfo_relation>();
// foreach (var item in caserelationList)
// {
// relationList.Add(new Sugar_Drone_caseinfo_relation
// {
// caseid = model.Id,
// relation_case_no = item
// });
// }
// //案件标签
// var tags = req.tags;
// List<Sugar_Drone_caseinfo_tag> tagList = new List<Sugar_Drone_caseinfo_tag>();
// foreach (var item in tags)
// {
// tagList.Add(new Sugar_Drone_caseinfo_tag
// {
// caseid = model.Id,
// tagid = item
// });
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Insertable(model).ExecuteCommand();
// //新增文件数据
// db.Insertable(filesList).ExecuteCommand();
// //新增关联案件
// db.Insertable(relationList).ExecuteCommand();
// //新增案件标签
// db.Insertable(tagList).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return model.Id;
// else
// throw new Exception("上报失败");
// }
//}
///// <summary>
///// 修改完善案件
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string UpdateDroneCaseInfo(AddOrUpdateDroneCaseInfoReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件实体
// var model = req.info;
// model.Update(user, db);
// //处理事否审核
// if (model.is_review == null)
// {
// model.is_review = 0;
// }
// //查询面积
// var areaDecimal = db.Queryable<Sugar_Drone_shp_data>().Where(c => c.relid == model.Id).Sum(c => c.area);
// if (areaDecimal != null)
// {
// model.area = Decimal.Round((Decimal)areaDecimal, 2).ToString();
// }
// var picList = req.pic_list;
// var videoList = req.video_list;
// var existFiles = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == req.info.Id).ToList();
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// var item = picList[i];
// var count = existFiles.Where(c => c.path == item).Count();
// if (count > 0)
// continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// var item = videoList[i];
// var count = existFiles.Where(c => c.path == item).Count();
// if (count > 0)
// continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //关联案件
// var caserelationList = req.relationCaseNo;
// List<Sugar_Drone_caseinfo_relation> relationList = new List<Sugar_Drone_caseinfo_relation>();
// foreach (var item in caserelationList)
// {
// relationList.Add(new Sugar_Drone_caseinfo_relation
// {
// caseid = model.Id,
// relation_case_no = item
// });
// }
// //案件标签
// var tags = req.tags;
// List<Sugar_Drone_caseinfo_tag> tagList = new List<Sugar_Drone_caseinfo_tag>();
// foreach (var item in tags)
// {
// tagList.Add(new Sugar_Drone_caseinfo_tag
// {
// caseid = model.Id,
// tagid = item
// });
// }
// //专题及平台数据处理
// var dataBaseList = db.Queryable<Sugar_Database_picture>().Where(c => req.databaseid.Contains(c.Id)).IgnoreColumns(c => new { c.org_id }).ToList();
// List<Sugar_Drone_CaseSubject> subjectList = new List<Sugar_Drone_CaseSubject>();
// //遍历库
// for (int i = 0; i < dataBaseList.Count; i++)
// {
// //当前库
// var _item = dataBaseList[i];
// //专题信息
// var subjectlist = db.Queryable<Sugar_Subject>().Where(r => req.subjectkeys.Contains(r.Key) && r.PId == _item.Id).ToList();
// var subjectkeys = "";
// if (req.subjectkeys != null && req.subjectkeys.Count > 0 && subjectlist.Count > 0)
// {
// subjectkeys = db.Queryable<Sugar_Subject>().Where(r => req.subjectkeys.Contains(r.Key) && r.PId == _item.Id).Select(r => r.Key).ToList().Aggregate((current, next) => current + "," + next);
// }
// Sugar_Drone_CaseSubject cject = new Sugar_Drone_CaseSubject();
// cject.Id = Guid.NewGuid().ToString();
// cject.CaseId = model.Id;
// cject.DataBaseId = _item.Id;
// cject.SubjectKeys = subjectkeys;
// cject.CreateTime = DateTime.Now;
// cject.CreateUser = user.Id;
// cject.CreateUserName = user.Name;
// subjectList.Add(cject);
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Updateable(model).ExecuteCommand();
// //新增文件数据
// db.Insertable(filesList).ExecuteCommand();
// //关联案件
// db.Deleteable<Sugar_Drone_caseinfo_relation>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(relationList).ExecuteCommand();
// //案件标签
// db.Deleteable<Sugar_Drone_caseinfo_tag>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(tagList).ExecuteCommand();
// //案件平台专题
// db.Deleteable<Sugar_Drone_CaseSubject>().Where(a => a.CaseId == model.Id).ExecuteCommand();
// db.Insertable(subjectList).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return model.Id;
// else
// throw new Exception("上报失败");
// }
//}
///// <summary>
///// 事件判读
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string UpdateDroneCaseInfoIntact(AddOrUpdateDroneCaseInfoDataBaseReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件实体
// var model = req.info;
// model.Update(user, db);
// //是否判读、判读人和判读时间
// model.is_intact = 1;
// model.identification_user = user.Name;
// model.identification_userid = user.Id;
// model.identification_time = DateTime.Now;
// if (model.is_review == null)
// {
// model.is_review = 0;
// }
// //查询面积
// var areaDecimal = db.Queryable<Sugar_Drone_shp_data>().Where(c => c.relid == model.Id).Sum(c => c.area);
// if (areaDecimal != null)
// {
// model.area = Decimal.Round((Decimal)areaDecimal, 2).ToString();
// }
// var picList = req.pic_list;
// var videoList = req.video_list;
// var existFiles = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == req.info.Id).ToList();
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// var item = picList[i];
// var count = existFiles.Where(c => c.path == item).Count();
// if (count > 0)
// continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// var item = videoList[i];
// var count = existFiles.Where(c => c.path == item).Count();
// if (count > 0)
// continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// List<Sugar_Relevance> relevanceList = new List<Sugar_Relevance>();
// for (int i = 0; i < req.databaseid.Count(); i++)
// {
// //不用进行判断是由于判读只能判读一次
// Sugar_Relevance rel = new Sugar_Relevance();
// rel.Id = Guid.NewGuid().ToString();
// rel.Key = Define.DATABASE_CASE;
// rel.Description = "";
// rel.Status = 0;
// rel.FirstId = req.databaseid[i];
// rel.SecondId = model.Id;
// rel.OperateTime = DateTime.Now;
// relevanceList.Add(rel);
// }
// //关联案件
// var caserelationList = req.relationCaseNo;
// List<Sugar_Drone_caseinfo_relation> relationList = new List<Sugar_Drone_caseinfo_relation>();
// foreach (var item in caserelationList)
// {
// relationList.Add(new Sugar_Drone_caseinfo_relation
// {
// caseid = model.Id,
// relation_case_no = item
// });
// }
// //案件标签
// var tags = req.tags;
// List<Sugar_Drone_caseinfo_tag> tagList = new List<Sugar_Drone_caseinfo_tag>();
// foreach (var item in tags)
// {
// tagList.Add(new Sugar_Drone_caseinfo_tag
// {
// caseid = model.Id,
// tagid = item
// });
// }
// #region 专题及平台数据处理
// //专题及平台数据处理
// var dataBaseList = db.Queryable<Sugar_Database_picture>().Where(c => req.databaseid.Contains(c.Id)).IgnoreColumns(c => new { c.org_id }).ToList();
// List<Sugar_Drone_CaseSubject> subjectList = new List<Sugar_Drone_CaseSubject>();
// //遍历库
// for (int i = 0; i < dataBaseList.Count; i++)
// {
// //当前库
// var _item = dataBaseList[i];
// //专题信息
// var subjectlist = db.Queryable<Sugar_Subject>().Where(r => req.subjectkeys.Contains(r.Key) && r.PId == _item.Id).ToList();
// var subjectkeys = "";
// if (req.subjectkeys.Count > 0 && subjectlist.Count > 0)
// {
// subjectkeys = db.Queryable<Sugar_Subject>().Where(r => req.subjectkeys.Contains(r.Key) && r.PId == _item.Id).Select(r => r.Key).ToList().Aggregate((current, next) => current + "," + next);
// }
// Sugar_Drone_CaseSubject cject = new Sugar_Drone_CaseSubject();
// cject.Id = Guid.NewGuid().ToString();
// cject.CaseId = model.Id;
// cject.DataBaseId = _item.Id;
// cject.SubjectKeys = subjectkeys;
// cject.CreateTime = DateTime.Now;
// cject.CreateUser = user.Id;
// cject.CreateUserName = user.Name;
// subjectList.Add(cject);
// }
// #endregion
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Updateable(model).ExecuteCommand();
// //新增文件数据
// db.Insertable(filesList).ExecuteCommand();
// //删除关联关系再新增
// db.Deleteable<Sugar_Relevance>().Where(c => c.SecondId == model.Id && c.Key == Define.DATABASE_CASE).ExecuteCommand();
// //关联表
// db.Insertable(relevanceList).ExecuteCommand();
// //案件关联
// db.Deleteable<Sugar_Drone_caseinfo_relation>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(relationList).ExecuteCommand();
// //案件标签
// db.Deleteable<Sugar_Drone_caseinfo_tag>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(tagList).ExecuteCommand();
// //案件平台专题
// db.Deleteable<Sugar_Drone_CaseSubject>().Where(a => a.CaseId == model.Id).ExecuteCommand();
// db.Insertable(subjectList).ExecuteCommand();
// });
// //同步到对应的库
// var flag = AsynchDroneCaseData(db, req.databaseid, req.info.Id, req.subjectkeys);
// if (transFlag.IsSuccess && flag == "成功")
// {
// return model.Id;
// }
// else
// {
// _logger.LogError(transFlag.ErrorMessage);
// if (flag == "成功")
// {
// throw new Exception("上报失败");
// }
// else
// {
// throw new Exception(flag);
// }
// }
// }
//}
///// <summary>
///// 事件审核
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string UpdateDroneCaseInfoExamine(AddOrUpdateDroneCaseInfoDataBaseReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件实体
// var model = req.info;
// model.Update(user, db);
// //判断案件是已审核
// var caseinfo = db.Queryable<Sugar_Drone_caseinfo>().Where(r => r.Id == model.Id).First();
// if (caseinfo != null)
// {
// if (string.IsNullOrEmpty(model.countyid) || string.IsNullOrEmpty(model.countyname) || string.IsNullOrEmpty(model.streetid) || string.IsNullOrEmpty(model.streetname))
// {
// throw new Exception("行政区划不能为空");
// }
// else
// {
// if (caseinfo.is_review == 1 && caseinfo.is_agree == true)
// {
// throw new Exception("案件已审核");
// }
// else
// {
// //是否判读、判读人和判读时间
// model.is_review = 1;
// model.examineuser = user.Name;
// model.examineuserid = user.Id;
// model.examinetime = DateTime.Now;
// //查询面积
// var areaDecimal = db.Queryable<Sugar_Drone_shp_data>().Where(c => c.relid == model.Id).Sum(c => c.area);
// if (areaDecimal != null)
// {
// model.area = Decimal.Round((Decimal)areaDecimal, 2).ToString();
// }
// var picList = req.pic_list;
// var videoList = req.video_list;
// var existFiles = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == req.info.Id).ToList();
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// var item = picList[i];
// //var count = existFiles.Where(c => c.path == item).Count();
// //if (count > 0)
// // continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// var item = videoList[i];
// //var count = existFiles.Where(c => c.path == item).Count();
// //if (count > 0)
// // continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// List<Sugar_Relevance> relevanceList = new List<Sugar_Relevance>();
// for (int i = 0; i < req.databaseid.Count(); i++)
// {
// //不用进行判断是由于判读只能判读一次
// Sugar_Relevance rel = new Sugar_Relevance();
// rel.Id = Guid.NewGuid().ToString();
// rel.Key = Define.DATABASE_CASE;
// rel.Description = "";
// rel.Status = 0;
// rel.FirstId = req.databaseid[i];
// rel.SecondId = model.Id;
// rel.OperateTime = DateTime.Now;
// relevanceList.Add(rel);
// }
// //关联案件
// var caserelationList = req.relationCaseNo;
// List<Sugar_Drone_caseinfo_relation> relationList = new List<Sugar_Drone_caseinfo_relation>();
// foreach (var item in caserelationList)
// {
// relationList.Add(new Sugar_Drone_caseinfo_relation
// {
// caseid = model.Id,
// relation_case_no = item
// });
// }
// //案件标签
// var tags = req.tags;
// List<Sugar_Drone_caseinfo_tag> tagList = new List<Sugar_Drone_caseinfo_tag>();
// foreach (var item in tags)
// {
// tagList.Add(new Sugar_Drone_caseinfo_tag
// {
// caseid = model.Id,
// tagid = item
// });
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Updateable(model).ExecuteCommand();
// //文件数据
// if (filesList.Count > 0)
// {
// db.Deleteable<Sugar_Drone_files>().Where(a => a.relid == model.Id).ExecuteCommand();
// db.Insertable(filesList).ExecuteCommand();
// }
// //删除关联关系再新增
// db.Deleteable<Sugar_Relevance>().Where(c => c.SecondId == model.Id && c.Key == Define.DATABASE_CASE).ExecuteCommand();
// //关联表
// db.Insertable(relevanceList).ExecuteCommand();
// //案件关联
// db.Deleteable<Sugar_Drone_caseinfo_relation>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(relationList).ExecuteCommand();
// //案件标签
// db.Deleteable<Sugar_Drone_caseinfo_tag>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(tagList).ExecuteCommand();
// });
// string flag = "";
// //审核通过,同步到对应的库
// if (model.is_agree != null && model.is_agree == true)
// {
// flag = AsynchDroneCaseData(db, req.databaseid, req.info.Id, req.subjectkeys);
// }
// if (transFlag.IsSuccess && flag == "成功")
// return model.Id;
// else
// throw new Exception("审核失败");
// }
// }
// }
// else
// {
// throw new Exception("案件不存在");
// }
// }
//}
///// <summary>
///// 事件审核(改变传参)
///// </summary>
///// <param name="caseid">案件信息id</param>
///// <param name="isagree">是否通过truefalse</param>
///// <param name="comments">审核意见</param>
///// <param name="datebaseids">需要下发到哪些项目id</param>
///// <returns></returns>
///// <exception cref="Exception"></exception>
//public string UpdateDroneCaseInfoExamines(ExamineReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件实体
// var model = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.Id == req.caseid).First();
// if (model != null)
// {
// //是否判读、判读人和判读时间
// model.is_review = 1;
// model.examineuser = user.Name;
// model.examineuserid = user.Id;
// model.examinetime = DateTime.Now;
// model.is_agree = req.isagree;
// model.examinecomments = req.comments;
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //更新案件数据
// db.Updateable(model).ExecuteCommand();
// });
// var flag = false;
// //审核通过,同步到对应的库
// if (model.is_agree != null && model.is_agree == true)
// {
// //flag = AsynchDroneCaseData(db, req.datebaseids, req.caseid,req);
// }
// if (transFlag.IsSuccess && flag)
// return model.Id;
// else
// throw new Exception("审核失败");
// }
// else
// {
// throw new Exception("案件不存在");
// }
// }
//}
///// <summary>
///// 同步数据公共方法
///// </summary>
///// <param name="db"></param>
///// <param name="dataBaseIds"></param>
///// <param name="caseId"></param>
///// <returns></returns>
//private string AsynchDroneCaseData(SqlSugarClient db, string[] dataBaseIds, string caseId, List<string> subjects)
//{
// //查询同步数据
// var dataBaseList = db.Queryable<Sugar_Database_picture>().Where(c => dataBaseIds.Contains(c.Id)).IgnoreColumns(c => new { c.org_id }).ToList();
// //查询案件详情
// var model = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.Id == caseId).First();
// //图斑数据
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" SELECT gid,relid,createuser,createtime,cast(geom as text) geom,area FROM \"drone_shp_data\" where relid = '{caseId}'");
// var shps = db.SqlQueryable<Sugar_Drone_shp_data>(sql.ToString()).ToList();
// //图片文件数据
// var files = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == caseId).ToList();
// var fileList = files.Select(c => c.path).ToList();
// //本地图片服务器的地址
// string pictureFilesApi = _configuration.GetSection("PictureFilesApi").Value;
// //关联案件
// var relationList = db.Queryable<Sugar_Drone_caseinfo_relation>().Where(a => a.caseid == caseId).ToList();
// //案件标签
// var tagList = db.Queryable<Sugar_Drone_caseinfo_tag>().Where(a => a.caseid == caseId).ToList();
// var dataflag = false;
// var fileflag = false;
// string infos = "";
// //遍历库
// for (int i = 0; i < dataBaseList.Count; i++)
// {
// //当前库
// var _item = dataBaseList[i];
// //专题信息
// var subjectlist = db.Queryable<Sugar_Subject>().Where(r => subjects.Contains(r.Key) && r.PId == _item.Id).ToList();
// var subjectnames = "";
// if (subjects.Count > 0 && subjectlist.Count > 0)
// {
// subjectnames = db.Queryable<Sugar_Subject>().Where(r => subjects.Contains(r.Key) && r.PId == _item.Id).Select(r => r.Name).ToList().Aggregate((current, next) => current + "," + next);
// }
// //同步数据参数
// AddOrUpdateAsyncDroneCaseDataReq postData = new AddOrUpdateAsyncDroneCaseDataReq();
// postData.model = model;
// postData.files = files;
// postData.shps = shps;
// postData.relations = relationList;
// postData.tags = tagList;
// postData.subjects = subjectlist;
// //状态,数据,发送请求
// string statusCode = string.Empty;
// string postDataStr = postData.ToJson();
// if (_item.database_url.IndexOf("http") >= 0)
// {
// //使用接口同步
// var postDataResult = HttpClientHelper.PostResponse(_item.database_url + "api/DroneCaseinfo/AsynchDroneCaseDataLast", postDataStr, out statusCode);
// //判断是否推送成功
// var res = JsonConvert.DeserializeObject<Response<string>>(postDataResult);
// if (res.Code == 200)
// {
// dataflag = true;
// //添加日志
// AddPushLogs(postDataStr, dataflag, 1, _item.database_name, _item.Id, subjectnames);
// }
// else
// {
// dataflag = false;
// infos += res.Message;
// //添加日志
// AddPushLogs(postDataStr, dataflag, 1, _item.database_name, _item.Id, subjectnames);
// break;
// }
// }
// else
// {
// //使用数据库同步数据
// string res = AsynchDroneCaseData(postData, _item.database_url);
// if (res == "同步成功")
// {
// dataflag = true;
// }
// else
// {
// dataflag = false;
// break;
// }
// }
// //同步图片参数
// AddOrUpdateDownLoadInternetToLocalReq postFiles = new AddOrUpdateDownLoadInternetToLocalReq();
// postFiles.uri = pictureFilesApi;
// postFiles.files = fileList;
// //状态,数据,发送请求
// string statusCodePic = string.Empty;
// string postFilesStr = postFiles.ToJson();
// var postFilesResult = HttpClientHelper.PostResponse(_item.picture_url + "api/Platform/DownLoadInternetToLocal", postFilesStr, out statusCodePic);
// //判断是否推送成功
// var fileres = JsonConvert.DeserializeObject<Response<string>>(postFilesResult);
// if (fileres.Code == 200)
// {
// fileflag = true;
// //添加日志
// AddPushLogs(postFilesStr, fileflag, 2, _item.database_name, _item.Id, subjectnames);
// }
// else
// {
// fileflag = false;
// infos += fileres.Message;
// //添加日志
// AddPushLogs(postFilesStr, fileflag, 2, _item.database_name, _item.Id, subjectnames);
// break;
// }
// }
// //返回最终结果
// if (dataflag && fileflag)
// {
// return "成功";
// }
// else
// {
// return infos;
// }
//}
////添加推送日志
//public bool AddPushLogs(string data, bool issuccess, int type, string databasename, string databaseid, string subjectname)
//{
// Sugar_PushLog pl = new Sugar_PushLog();
// pl.Id = Guid.NewGuid().ToString();
// pl.PushTime = DateTime.Now;
// pl.DatabaseName = databasename;
// pl.Data = data;
// pl.IsSuccess = issuccess;
// pl.Type = type;
// pl.DataBaseId = databaseid;
// pl.SubjectName = subjectname;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var transFlag = db.UseTran(() =>
// {
// //新增推送日志
// db.Insertable(pl).ExecuteCommand();
// });
// return transFlag.IsSuccess;
// }
//}
////查询专题数据
//public List<SubjectRes> GetSubjectInfos()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var list = db.Queryable<Sugar_Database_picture>().Select(r => new SubjectRes
// {
// Id = r.Id,
// Name = r.database_name,
// Children = SqlFunc.Subqueryable<Sugar_Subject>().Where(a => a.PId == r.Id).ToList(a => new ChildSubject
// {
// Key = a.Key,
// Name = a.Name
// })
// }).ToList();
// return list;
// }
//}
///// <summary>
///// 同步航飞库数据
///// </summary>
///// <param name="req"></param>
///// <param name="database"></param>
///// <returns></returns>
//private string AsynchDroneCaseData(AddOrUpdateAsyncDroneCaseDataReq req, string database)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration, database))
// {
// //案件
// var model = req.model;
// //文件
// var files = req.files;
// //shp
// var shps = req.shps;
// //关联案件
// var relations = req.relations;
// //案件标签
// var tags = req.tags;
// //查询是否存在此数据
// var _count = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.Id == model.Id).Count();
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// if (_count > 0)
// {
// //已存在此数据,修改数据
// db.Updateable(model).ExecuteCommand();
// }
// else
// {
// //新增数据
// db.Insertable(model).ExecuteCommand();
// }
// if (!string.IsNullOrEmpty(model.Id))
// {
// //新增修改图斑
// //先删除,后新增
// db.Deleteable<Sugar_Drone_shp_data>().Where(c => c.relid == model.Id).ExecuteCommand();
// var _gidStr = App.Common.CommonData.GetMaxKeyVal("gid", "drone_shp_data", 1, _configuration);
// int _gid = int.Parse(_gidStr);
// for (int i = 0; i < shps.Count; i++)
// {
// var _item = shps[i];
// _item.gid = _gid + i;
// }
// db.Insertable(shps).ExecuteCommand();
// //新增修改图片
// //先删除,后新增
// db.Deleteable<Sugar_Drone_files>().Where(c => c.relid == model.Id).ExecuteCommand();
// db.Insertable(files).ExecuteCommand();
// //关联案件
// //先删除后新增
// db.Deleteable<Sugar_Drone_caseinfo_relation>().Where(c => c.caseid == model.Id).ExecuteCommand();
// db.Insertable(relations).ExecuteCommand();
// //案件标签
// //先删除后新增
// db.Deleteable<Sugar_Drone_caseinfo_tag>().Where(a => a.caseid == model.Id).ExecuteCommand();
// db.Insertable(tags).ExecuteCommand();
// }
// });
// if (transFlag.IsSuccess)
// return "同步成功";
// else
// throw new Exception("同步失败");
// }
//}
///// <summary>
///// 关闭案件(判读用)
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public string CloseDroneCaseInfo(string id)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo
// {
// is_intact = 99,
// close_time = DateTime.Now,
// close_user = user.Name,
// close_userid = user.Id
// })
// .Where(c => c.Id == id)
// .ExecuteCommand();
// if (flag > 0)
// return "关闭成功";
// else
// throw new Exception("关闭失败");
// }
//}
///// <summary>
///// 关闭案件(审核用)
///// </summary>
///// <param name="id"></param>
///// <param name="close_comments"></param>
///// <returns></returns>
//public string CloseDroneCaseInfos(string id, string close_comments)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var info = db.Queryable<Sugar_Drone_caseinfo>().Where(r => r.Id == id).First();
// if (info != null)
// {
// if (info.is_review == 1 && info.is_agree == true)
// {
// throw new Exception("案件已审核"); ;
// }
// else
// {
// var flag = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo
// {
// is_intact = 99,
// close_time = DateTime.Now,
// close_user = user.Name,
// close_userid = user.Id,
// close_comments = close_comments
// })
// .Where(c => c.Id == id)
// .ExecuteCommand();
// if (flag > 0)
// return "关闭成功";
// else
// throw new Exception("关闭失败");
// }
// }
// else
// {
// throw new Exception("案件不存在");
// }
// }
//}
///// <summary>
///// 审核通过
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public string VerifyCaseInfoSuccess(string id)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo()
// {
// handle_status_id = 2,
// handle_status_name = "已办结",
// verifyuserid = user.Id,
// verifyuser = user.Name,
// verifytime = DateTime.Now
// })
// .Where(c => c.Id == id)
// .ExecuteCommand();
// if (flag > 0)
// return "审核成功";
// else
// return "审核失败";
// }
//}
///// <summary>
///// 审核改进
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string VerifyCaseInfoFailed(AddOrUpdateVerifyCaseSuccessReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var caseInfo = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.Id == req.id).First();
// //处理状态名称
// string handle_status_name = handleStatusList.Where(c => c.id == 0).FirstOrDefault().name;
// Sugar_Drone_message message = new Sugar_Drone_message();
// message.Init(user);
// //消息通知
// message.msg_type = 1;
// message.msg_title = $"案件编号:{caseInfo.case_no} 需要改进处理";
// message.msg_content = $"案件编号:{caseInfo.case_no} 需要改进处理。备注:{req.remark}";
// Sugar_Drone_message_relevance relevance = new Sugar_Drone_message_relevance();
// relevance.Init(user);
// relevance.userid = caseInfo.deal_userid;
// relevance.username = caseInfo.deal_username;
// relevance.messageid = message.Id;
// Sugar_Drone_improve_record record = new Sugar_Drone_improve_record();
// record.Id = Guid.NewGuid().ToString();
// record.reason = req.remark;
// record.caseid = caseInfo.Id;
// record.deal_userid = caseInfo.deal_userid;
// record.receiver = caseInfo.deal_username;
// record.createtime = DateTime.Now;
// record.createuser = user.Id;
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //更改案件处理状态
// var flag = db.Updateable<Sugar_Drone_caseinfo>().SetColumns(c => new Sugar_Drone_caseinfo()
// {
// handle_status_id = 0, //改成未办理0
// handle_status_name = "退回未办理",//未办理
// is_improve = 1, //是否改进
// improve_reason = req.remark //改进原因
// }).Where(c => c.Id == req.id).ExecuteCommand();
// //插入改进记录
// var recordFlag = db.Insertable(record).ExecuteCommand();
// //插入通知和关联
// var flag1 = db.Insertable(message).ExecuteCommand();
// var flag2 = db.Insertable(relevance).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return "成功";
// else
// throw new Exception("失败");
// }
// return "";
//}
///// <summary>
///// 上报事件
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddCaseEvent(AddOrUpdateDroneCaseEventReq req)
//{
// var _user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// Sugar_Drone_caseinfo model = new Sugar_Drone_caseinfo();
// model.Id = Guid.NewGuid().ToString();
// model.lat = req.lat;
// model.lng = req.lng;
// model.remark = req.remark;
// var picList = req.pic_list;//图片
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = _user.Id;
// fileModel.createusername = _user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Insertable(model).InsertColumns(c => new
// {
// c.Id,
// c.lat,
// c.lng,
// c.remark
// }).ExecuteCommand();
// //新增文件数据
// db.Insertable(filesList).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return model.Id;
// else
// throw new Exception("上报失败");
// }
//}
///// <summary>
///// 上报案件-分配给自己临时接口
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddTemporaryDroneCaseInfo(AddOrUpdateDroneCaseInfoReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件实体
// var model = req.info;
// model.Init(user, db);
// var picList = req.pic_list;
// var videoList = req.video_list;
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_caseinfo";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //分配案件//将处理人分配给自己
// //StringBuilder deal_userid = new StringBuilder();
// //StringBuilder deal_username = new StringBuilder();
// //deal_userid.AppendFormat("{0},", user.Id);
// //deal_username.AppendFormat("{0},", user.Name);
// ////去除最后一个逗号
// //if (deal_userid.Length > 0)
// //{
// // deal_userid.Remove(deal_userid.Length - 1, 1);
// //}
// //去除最后一个逗号
// //if (deal_username.Length > 0)
// //{
// // deal_username.Remove(deal_username.Length - 1, 1);
// //}
// //model.deal_userid = deal_userid.ToString();
// //model.deal_username = deal_username.ToString();
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增案件数据
// db.Insertable(model).ExecuteCommand();
// //新增文件数据
// db.Insertable(filesList).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return req.info.Id;
// else
// throw new Exception("上报失败");
// }
//}
///// <summary>
///// 分配案件
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AllotDroneEnforcement(AddOrUpdateAllotDroneCaseInfoReq req)
//{
// //案件id列表
// var caseidList = req.caseid_list;
// //用户id列表
// var useridList = req.user_list;
// //当前用户
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //案件列表
// var caseList = db.Queryable<Sugar_Drone_caseinfo>().Where(c => caseidList.Contains(c.Id)).ToList();
// //用户列表
// var userList = db.Queryable<Sugar_Users>().Where(c => useridList.Contains(c.Id)).ToList();
// //用户id和名称 字符串
// StringBuilder useridStr = new StringBuilder();
// StringBuilder usernameStr = new StringBuilder();
// //遍历用户,组装字符串
// for (int i = 0; i < userList.Count; i++)
// {
// var item = userList[i];
// useridStr.AppendFormat("{0},", item.Id);
// usernameStr.AppendFormat("{0},", item.Name);
// }
// //处理状态
// int? handle_status_id = req.handle_status_id;
// string handle_status_name = string.Empty;
// if (handle_status_id != null)
// {
// handle_status_name = handleStatusList.Where(c => c.id == handle_status_id).FirstOrDefault().name;
// }
// //遍历案件,批量赋值 执行人
// for (int i = 0; i < caseList.Count; i++)
// {
// var item = caseList[i];
// item.deal_userid = useridStr.ToString();
// item.deal_username = usernameStr.ToString();
// if (handle_status_id != null)
// {
// item.handle_status_id = handle_status_id;
// item.handle_status_name = handle_status_name;
// }
// }
// var flag = db.Updateable(caseList).UpdateColumns(c => new
// {
// c.deal_userid,
// c.deal_username,
// c.handle_status_id,
// c.handle_status_name,
// }).ExecuteCommand();
// if (flag > 0)
// {
// return "分配成功";
// }
// else
// {
// return "分配失败";
// }
// }
//}
///// <summary>
///// 查询案件列表
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public TableData LoadCaseInfoList(QueryCaseInfoListReq req)
//{
// TableData tableData = new TableData();
// req.Init();
// DateTime curDatetime = DateTime.Now;
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //更新已超期的数据
// //var statusModel = db.Queryable<Sugar_Category>().Where(c => c.DtCode == "DRONE_CASE_STATUS_OVERDUE").First();
// //if (statusModel != null)
// //{
// // var flag = db.Updateable<Sugar_Drone_caseinfo>()
// // .SetColumns(c => new Sugar_Drone_caseinfo { case_status_name = statusModel.Name, case_status_id = statusModel.Id })
// // .Where(c => c.end_time != null && c.end_time < curDatetime && c.case_status_id != statusModel.Id)
// // .ExecuteCommand();
// //}
// //总条数
// int totalNumber = 0;
// var oldIntacts = new List<int?> { 1, 99, 6 };
// var list = db.Queryable<Sugar_Drone_caseinfo>().Where("(is_delete = 0 or is_delete is null)")
// //关键字过滤数据
// .WhereIF(!string.IsNullOrEmpty(req.key), c => c.case_no.Contains(req.key) || c.case_name.Contains(req.key) || c.case_description.Contains(req.key))
// //是否完整
// //.WhereIF(req.is_intact != null && req.is_intact != 0, c => c.is_intact == req.is_intact)
// //已判读、已关闭
// .WhereIF(req.is_intact != null && oldIntacts.Contains(req.is_intact), c => c.is_intact == req.is_intact)
// //未判读
// .WhereIF(req.is_intact == 0, c => c.is_intact == null || c.is_intact == 0)
// //已审核
// .WhereIF(req.is_intact == 2, c => c.is_review == 1)
// //已通过
// .WhereIF(req.is_intact == 3, c => c.is_review == 1 && c.is_agree == true && c.is_intact == 1)
// //未通过
// .WhereIF(req.is_intact == 4, c => c.is_review == 1 && c.is_agree == false && c.is_intact == 1)
// //上报人
// .WhereIF(req.is_reporter == 1 && user.Account != Define.SYSTEM_USERNAME, c => c.createuser == user.Id)
// //执行人
// .WhereIF(req.is_dealer == 1 && user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.countyid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || c.createuser == user.Id)
// //处理状态
// .WhereIF(req.handle_status_id != null, c => c.handle_status_id == req.handle_status_id)
// //案件状态
// .WhereIF(!string.IsNullOrEmpty(req.case_status_id), c => c.case_status_id == req.case_status_id)
// //开始时间
// .WhereIF(req.report_start_time != null, c => c.createtime >= req.report_start_time)
// //结束时间
// .WhereIF(req.report_end_time != null, c => c.createtime <= req.report_end_time)
// //上报人
// .WhereIF(!string.IsNullOrEmpty(req.report_name), c => c.createusername.Contains(req.report_name))
// //执行人
// .WhereIF(!string.IsNullOrEmpty(req.deal_username), c => c.deal_username.Contains(req.deal_username))
// //判读开始时间
// .WhereIF(req.identification_start_time != null, c => c.identification_time >= req.identification_start_time)
// //判读结束时间
// .WhereIF(req.identification_end_time != null, c => c.identification_time <= req.identification_end_time)
// //县id
// .WhereIF(!string.IsNullOrEmpty(req.countyid), c => c.countyid == req.countyid)
// //镇id
// .WhereIF(!string.IsNullOrEmpty(req.streetid), c => c.streetid == req.streetid)
// //村id
// .WhereIF(!string.IsNullOrEmpty(req.communityid), c => c.communityid == req.communityid)
// //判读人id
// //.WhereIF(!string.IsNullOrEmpty(req.identification_userid), c => c.identification_userid == req.identification_userid)
// //判读人查看创建人或者判读人是自己的,或者判读人是空的
// .WhereIF(!string.IsNullOrEmpty(req.identification_userid) && user.Account != Define.SYSTEM_USERNAME,
// c => c.identification_userid == req.identification_userid || c.createuser == req.identification_userid || SqlFunc.IsNullOrEmpty(req.identification_userid))
// //判读人
// .WhereIF(!string.IsNullOrEmpty(req.identification_user), c => c.identification_user == req.identification_user)
// //判读人账号
// .WhereIF(!string.IsNullOrEmpty(req.identification_account), c => SqlFunc.Subqueryable<Sugar_Users>().Where(it => c.identification_userid == it.Id && it.Account == req.identification_account).Any())
// //是否违法
// .WhereIF(req.is_illegal != null, c => c.is_illegal == req.is_illegal)
// //是否判读审核
// .WhereIF(req.is_review != null, c => c.is_review == req.is_review)
// //审核判读数据权限过滤
// .WhereIF(req.is_Reviewer == 1 && user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == user.Id && it.FirstId == c.identification_userid && it.Key == Define.UserAndUser).Any())
// //村名称
// .WhereIF(!string.IsNullOrEmpty(req.communityname), c => c.communityname.Contains(req.communityname))
// //案件编号
// .WhereIF(!string.IsNullOrEmpty(req.case_no), c => c.case_no.Contains(req.case_no))
// //案件类型
// .WhereIF(!string.IsNullOrEmpty(req.typeid), c => c.typeid == req.typeid || c.sec_typeid == req.typeid || c.thr_typeid == req.typeid)
// //地址
// .WhereIF(!string.IsNullOrEmpty(req.address), c => c.address.Contains(req.address))
// //案件描述
// .WhereIF(!string.IsNullOrEmpty(req.case_description), c => c.case_description.Contains(req.case_description))
// //排序
// .OrderBy(c => c.createtime, OrderByType.Desc)
// //分页查询数据
// .ToPageList(req.page, req.limit, ref totalNumber);
// tableData.data = list;
// tableData.count = totalNumber;
// return tableData;
// }
//}
///// <summary>
///// 查询已审核案件列表
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public TableData LoadExaminedCaseInfo(QueryCaseInfoListReq req)
//{
// TableData tableData = new TableData();
// req.Init();
// DateTime curDatetime = DateTime.Now;
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //总条数
// int totalNumber = 0;
// var oldIntacts = new List<int?> { 1, 99 };
// var list = db.Queryable<Sugar_Drone_caseinfo>().Where("(is_delete = 0 or is_delete is null)")
// //关键字过滤数据
// .WhereIF(!string.IsNullOrEmpty(req.key), c => c.case_no.Contains(req.key) || c.case_name.Contains(req.key) || c.case_description.Contains(req.key))
// //是否完整
// //.WhereIF(req.is_intact != null && req.is_intact != 0, c => c.is_intact == req.is_intact)
// //已判读、已关闭
// .WhereIF(req.is_intact != null && oldIntacts.Contains(req.is_intact), c => c.is_intact == req.is_intact)
// //未判读
// .WhereIF(req.is_intact == 0, c => c.is_intact == null || c.is_intact == 0)
// //已审核
// .WhereIF(req.is_intact == 2, c => c.is_review == 1)
// //已通过
// .WhereIF(req.is_intact == 3, c => c.is_review == 1 && c.is_agree == true)
// //未通过
// .WhereIF(req.is_intact == 4, c => c.is_review == 1 && c.is_agree == false)
// //上报人
// .WhereIF(req.is_reporter == 1 && user.Account != Define.SYSTEM_USERNAME, c => c.createuser == user.Id)
// //执行人
// .WhereIF(req.is_dealer == 1 && user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.countyid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || c.createuser == user.Id)
// //处理状态
// .WhereIF(req.handle_status_id != null, c => c.handle_status_id == req.handle_status_id)
// //案件状态
// .WhereIF(!string.IsNullOrEmpty(req.case_status_id), c => c.case_status_id == req.case_status_id)
// //开始时间
// .WhereIF(req.report_start_time != null, c => c.createtime >= req.report_start_time)
// //结束时间
// .WhereIF(req.report_end_time != null, c => c.createtime <= req.report_end_time)
// //上报人
// .WhereIF(!string.IsNullOrEmpty(req.report_name), c => c.createusername.Contains(req.report_name))
// //执行人
// .WhereIF(!string.IsNullOrEmpty(req.deal_username), c => c.deal_username.Contains(req.deal_username))
// //判读开始时间
// .WhereIF(req.identification_start_time != null, c => c.identification_time >= req.identification_start_time)
// //判读结束时间
// .WhereIF(req.identification_end_time != null, c => c.identification_time <= req.identification_end_time)
// //县id
// .WhereIF(!string.IsNullOrEmpty(req.countyid), c => c.countyid == req.countyid)
// //镇id
// .WhereIF(!string.IsNullOrEmpty(req.streetid), c => c.streetid == req.streetid)
// //村id
// .WhereIF(!string.IsNullOrEmpty(req.communityid), c => c.communityid == req.communityid)
// //判读人id
// //.WhereIF(!string.IsNullOrEmpty(req.identification_userid), c => c.identification_userid == req.identification_userid)
// //判读人查看创建人或者判读人是自己的,或者判读人是空的
// .WhereIF(!string.IsNullOrEmpty(req.identification_userid) && user.Account != Define.SYSTEM_USERNAME,
// c => c.identification_userid == req.identification_userid || c.createuser == req.identification_userid || SqlFunc.IsNullOrEmpty(req.identification_userid))
// //判读人
// .WhereIF(!string.IsNullOrEmpty(req.identification_user), c => c.identification_user == req.identification_user)
// //判读人账号
// .WhereIF(!string.IsNullOrEmpty(req.identification_account), c => SqlFunc.Subqueryable<Sugar_Users>().Where(it => c.identification_userid == it.Id && it.Account == req.identification_account).Any())
// //是否违法
// .WhereIF(req.is_illegal != null, c => c.is_illegal == req.is_illegal)
// //是否判读审核
// .WhereIF(req.is_review != null, c => c.is_review == req.is_review)
// //审核判读数据权限过滤
// .WhereIF(req.is_Reviewer == 1 && user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == user.Id && it.FirstId == c.identification_userid && it.Key == Define.UserAndUser).Any())
// //村名称
// .WhereIF(!string.IsNullOrEmpty(req.communityname), c => c.communityname.Contains(req.communityname))
// //案件编号
// .WhereIF(!string.IsNullOrEmpty(req.case_no), c => c.case_no.Contains(req.case_no))
// //案件类型
// .WhereIF(!string.IsNullOrEmpty(req.typeid), c => c.typeid == req.typeid || c.sec_typeid == req.typeid || c.thr_typeid == req.typeid)
// //地址
// .WhereIF(!string.IsNullOrEmpty(req.address), c => c.address.Contains(req.address))
// //案件描述
// .WhereIF(!string.IsNullOrEmpty(req.case_description), c => c.case_description.Contains(req.case_description))
// .OrderBy(c => SqlFunc.IsNull(c.examinetime, DateTime.MinValue), OrderByType.Desc)
// //排序
// //.OrderBy(c => c.examinetime, OrderByType.Desc)
// //分页查询数据
// .ToPageList(req.page, req.limit, ref totalNumber);
// tableData.data = list;
// tableData.count = totalNumber;
// return tableData;
// }
//}
///// <summary>
///// 加载处理数据列表
///// </summary>
///// <param name="obj"></param>
///// <returns></returns>
//public TableData LoadDealCaseInfoList(QueryDealCaseInfoListReq obj)
//{
// obj.Init();
// var req = obj.MapTo<QueryCaseInfoListReq>();
// req.is_intact = 1;
// req.is_dealer = 1;
// //查询列表数据
// var tbData = LoadCaseInfoList(req);
// var list = (List<Sugar_Drone_caseinfo>)tbData.data;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var caseIdList = list.Select(c => c.Id).ToList();
// var picList = db.Queryable<Sugar_Drone_files>().Where(c => caseIdList.Contains(c.relid) && c.type == 0 && c.tablename == "drone_caseinfo").Select(c => new { caseid = c.relid, c.path }).ToList();
// List<DroneCaseInfoExt> result = new List<DroneCaseInfoExt>();
// for (int i = 0; i < list.Count; i++)
// {
// var item = list[i];
// var caseModel = item.MapTo<DroneCaseInfoExt>();
// caseModel.case_pic_list = picList.Where(c => c.caseid == caseModel.Id).Select(c => c.path).ToList();
// result.Add(caseModel);
// }
// TableData tableData = new TableData();
// tableData.count = tbData.count;
// tableData.data = result;
// return tableData;
// }
//}
///// <summary>
///// 导出无人机执法案件
///// </summary>
///// <param name="obj"></param>
///// <returns></returns>
//public string ExportCaseInfoList([FromQuery] QueryDealCaseInfoListReq obj)
//{
// obj.Init();
// var req = obj.MapTo<QueryCaseInfoListReq>();
// req.is_intact = 1;
// req.is_dealer = 1;
// req.page = 1;
// req.limit = 99999;
// //获取到数据转为json字符串再将字符串转为DataTable
// string listStr = JsonConvert.SerializeObject(LoadCaseInfoList(req).data);
// DataTable dt = JsonConvert.DeserializeObject<DataTable>(listStr);
// List<string> columnsname = new List<string>()
// {
// "Id",
// "case_no",
// "typename",
// "countyname",
// "streetname",
// "communityname",
// "lng",
// "lat",
// "case_description",
// "createusername",
// "createtime",
// };
// List<string> columns = new List<string>()
// {
// "案件id",
// "案件编号",
// "案件类型",
// "县",
// "镇",
// "村",
// "经度",
// "纬度",
// "案件描述",
// "上报人",
// "上报时间",
// };
// //根目录
// string root = AppDomain.CurrentDomain.BaseDirectory;
// //保存的项目目录
// string path = "ExportExcelModel\\" + Guid.NewGuid().ToString() + "\\";
// //调用公共方法保存Excel
// WebApi.Common.ExcelHelper excel = new WebApi.Common.ExcelHelper(root + path + "无人机执法案件.xlsx");
// excel.CreatExcelSheet("sheet1", dt, columns, columnsname);
// excel.SaveExcel();
// Task.Run(() =>
// {
// Thread.Sleep(1000 * 30);
// //删除生成的Excel文件
// if (Directory.Exists(root + path))
// {
// Directory.Delete(root + path, true);
// }
// });
// //返回路径地址
// return path + "无人机执法案件.xlsx";
//}
///// <summary>
///// 案件详情
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public AddOrUpdateDroneCaseInfoDataBaseReqExt GetCaseInfo(string id)
//{
// AddOrUpdateDroneCaseInfoDataBaseReqExt res = new AddOrUpdateDroneCaseInfoDataBaseReqExt();
// res.Init();
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //详情
// var info = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.Id == id).First();
// //文件
// var fileList = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == id && (c.is_delete == null || c.is_delete == 0) && c.tablename == "drone_caseinfo").ToList();
// //图片
// var pic_list = fileList.Where(c => c.type == 0).GroupBy(c => c.path).Select(c => c.Key).ToList();
// var pics = fileList.Where(c => c.type == 0).ToList();
// //视频
// var video_list = fileList.Where(c => c.type == 1).GroupBy(c => c.path).Select(c => c.Key).ToList();
// var videos = fileList.Where(c => c.type == 1).ToList();
// //历史案件
// var relationCaseNoList = db.Queryable<Sugar_Drone_caseinfo_relation>().Where(a => a.caseid == id).Select(a => a.relation_case_no).ToList();
// //案件标签
// //var tags = db.Queryable<Sugar_Drone_caseinfo_tag>()
// // .LeftJoin<Sugar_Category>((t, c) => t.tagid == c.Id)
// // .Where((t, c) => t.caseid == id && c.TypeId == "DRONE_CASE_TAG")
// // .Select((t, c) => c.Name).ToList();
// var tags = db.Queryable<Sugar_Drone_caseinfo_tag>()
// .Where(t => t.caseid == id)
// .Select(t => t.tagid).ToList();
// //图斑的中心点
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($"SELECT st_astext(ST_Centroid(geom)) lnglat FROM \"drone_shp_data\" where relid = '{id}' and geom is not null");
// var dt = db.Ado.GetDataTable(sql.ToString());
// if (dt.Rows.Count > 0)
// {
// string lngLat = dt.Rows[0]["lnglat"].ToString();
// lngLat = lngLat.Replace("POINT(", "").Replace(")", "");
// var lngLats = lngLat.Split(" ");
// res.lng = Decimal.Round(Decimal.Parse(lngLats[0]), 6);
// res.lat = Decimal.Round(Decimal.Parse(lngLats[1]), 6);
// }
// //通过关联表过滤
// //var database = db.Queryable<Sugar_Database_picture, Sugar_Relevance, Sugar_Drone_caseinfo>((p, r, c) => new JoinQueryInfos(
// // JoinType.Left, p.Id == r.FirstId,
// // JoinType.Left, r.SecondId == c.Id
// // )).
// // Where((p, r, c) => p.org_id.Contains(info.communityid) && (info.communityid != null || info.communityid != "") && r.SecondId == id && r.Key == Define.DATABASE_CASE)
// // .Select((p, r, c) => p.Id).ToArray();
// //案件平台及专题
// var databaselist = db.Queryable<Sugar_Drone_CaseSubject>().Where(r => r.CaseId == id)?.Select(r => r.DataBaseId).Distinct().ToList();
// var subjectkeys = db.Queryable<Sugar_Drone_CaseSubject>().Where(r => r.CaseId == id)?.Select(r => r.SubjectKeys).ToList();
// List<string> keys = new List<string>();
// foreach (var item in subjectkeys)
// {
// keys = keys.Concat(item.Split(',').ToList()).ToList();
// }
// res.info = info;
// res.pic_list = pic_list;
// res.video_list = video_list;
// res.pics = pics;
// res.videos = videos;
// res.relationCaseNo = relationCaseNoList;
// res.tags = tags;
// res.databaseid = databaselist.ToArray();
// res.subjectkeys = keys.Distinct().ToList();
// return res;
// }
//}
///// <summary>
///// 查询案件
///// </summary>
///// <returns></returns>
//public object LoadCaseInfoData()
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var list = db.Queryable<Sugar_Drone_caseinfo>()
// //是否完整性、是否关闭、是否删除过滤
// .Where(c => c.is_intact == 1 && (c.is_closed == 0 || c.is_closed == null) && (c.is_delete == 0 || c.is_delete == null))
// //执行人过滤
// .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.countyid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || c.createuser == user.Id)
// .OrderBy(c => c.createtime, OrderByType.Desc)
// .Select(c => new { c.Id, c.lng, c.lat, c.case_name, c.handle_status_id })
// .ToList();
// return list;
// }
//}
///// <summary>
///// 删除案件
///// </summary>
///// <param name="ids"></param>
///// <returns></returns>
//public string DeleteDroneCaseInfo(string[] ids)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo { is_delete = 1 })
// .Where(c => ids.Contains(c.Id))
// .ExecuteCommand();
// if (flag > 0)
// return "删除成功";
// else
// throw new Exception("删除失败");
// }
//}
///// <summary>
///// 删除文件
///// </summary>
///// <param name="ids"></param>
///// <returns></returns>
//public string DeleteDroneFiles(string[] ids)
//{
// if (ids == null)
// throw new Exception("ids is null");
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// int flag = -1;
// flag = db.Updateable<Sugar_Drone_files>()
// .SetColumns(c => new Sugar_Drone_files { is_delete = 1 })
// .Where(c => ids.Contains(c.Id))
// .ExecuteCommand();
// if (flag >= 0)
// return "删除成功";
// else
// throw new Exception("删除失败");
// }
//}
///// <summary>
///// 删除文件 - 通过路径删除
///// </summary>
///// <param name="paths"></param>
///// <returns></returns>
//public string DeleteDroneFilesByPath(string[] paths)
//{
// if (paths == null)
// throw new Exception("paths is null");
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// int flag = -1;
// flag = db.Updateable<Sugar_Drone_files>()
// .SetColumns(c => new Sugar_Drone_files { is_delete = 1 })
// .Where(c => paths.Contains(c.path))
// .ExecuteCommand();
// if (flag >= 0)
// return "删除成功";
// else
// throw new Exception("删除失败");
// }
//}
///// <summary>
///// 案件数量统计
///// </summary>
///// <returns></returns>
//public JObject CaseCountCensus()
//{
// //统计相关接口
// //尽量减少查询数据库数据
// //查询数据返回值尽量少
// //数据类型统计使用GroupBy统计count再进行类型过滤
// //当前用户
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //查询当前用户分配的任务
// var list = db.Queryable<Sugar_Drone_caseinfo>()
// //是否完整性、是否删除过滤
// .Where(c => c.is_intact == 1 && (c.is_delete == 0 || c.is_delete == null))
// //执行人过滤
// .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.countyid && it.FirstId == user.Id && it.Key == Define.USERORG).Any()
// || c.createuser == user.Id)
// .GroupBy(c => c.handle_status_id)
// .Select(c => new { c.handle_status_id, count = SqlFunc.AggregateCount(c.Id) })
// .ToList();
// //统计数量
// JObject obj = new JObject();
// obj.Add("total", list.Sum(c => c.count));
// obj.Add("status0", list.Where(c => c.handle_status_id == 0).Sum(c => c.count));
// obj.Add("status1", list.Where(c => c.handle_status_id == 1).Sum(c => c.count));
// obj.Add("status2", list.Where(c => c.handle_status_id == 2).Sum(c => c.count));
// return obj;
// }
//}
///// <summary>
///// 案件导出
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public string DroneCaseInfoExport(string id)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var model = GetCaseInfo(id);
// var info = model.info;
// Dictionary<string, object> dic = new Dictionary<string, object>();
// dic.Add("CASE_NO", info.case_no);
// dic.Add("CREATEUSERNAME", info.createusername);
// dic.Add("ADDRESS", info.address);
// dic.Add("LNG", info.lng);
// dic.Add("LAT", info.lat);
// dic.Add("DEAL_USERNAME", info.deal_username);
// dic.Add("HANDLE_STATUS_NAME", info.handle_status_name);
// dic.Add("CASE_DESCRIPTION", info.case_description);
// dic.Add("CREATETIME", info.createtime);
// var root = AppDomain.CurrentDomain.BaseDirectory;
// string pathGuid = Guid.NewGuid().ToString();
// var out_path = "ExportWordModel\\" + pathGuid + "\\drone_enforcement.docx";
// if (!Directory.Exists(root + "ExportWordModel\\" + pathGuid))
// {
// Directory.CreateDirectory(root + "ExportWordModel\\" + pathGuid);
// }
// WordHelper.Export(root + "ExportWordModel\\drone_enforcement.docx", root + out_path, dic);
// NPOI.XWPF.UserModel.XWPFDocument doc = null;
// //打开文件
// using (var stream = File.OpenRead(root + out_path))
// {
// doc = new NPOI.XWPF.UserModel.XWPFDocument(stream);//创建一个word文档
// }
// out_path = "ExportWordModel\\" + pathGuid + "\\drone_enforcement_n.docx";
// string picFilePath = _configuration.GetSection("PictureFilesPath").Value;
// //表格
// var table = doc.Tables[0];
// //列
// var cell = table.Rows[4].GetCell(1);
// foreach (var para in cell.Paragraphs)
// {
// var runs = para.Runs;
// foreach (var gr in runs)
// {
// var text = gr.Text;
// gr.ReplaceText("#PICLIST#", "");
// var picList = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == id).Select(c => c.path).ToList();
// foreach (var item in picList)
// {
// if (!File.Exists(picFilePath + item))
// continue;
// //图片路径
// Image image = Image.FromFile(picFilePath + item);
// //添加图片
// gr.AddPicture(ImageHelper.ImgToStream(image), (int)PictureType.PNG, Guid.NewGuid().ToString() + ".png", image.Width * 800, image.Height * 800);
// }
// break;
// }
// }
// using (FileStream fs = new FileStream(root + out_path, FileMode.OpenOrCreate, FileAccess.Write))
// {
// doc.Write(fs);
// Console.WriteLine("生成word成功");
// }
// Task.Run(() =>
// {
// //过一分钟后把文件夹删除
// Thread.Sleep(1000 * 30);
// Directory.Delete(root + "ExportWordModel\\" + pathGuid, true);
// });
// return out_path;
// }
//}
//#endregion
//#region 通知
///// <summary>
///// 查询所有通信信息
///// </summary>
///// <returns></returns>
//public TableData LoadMessageList(QueryDroneCaseinfoReq req)
//{
// var user = _auth.GetCurrentUser().User;
// TableData tableData = new TableData();
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// int totalCount = 0;
// var listPage = new List<Sugar_Drone_message>();
// if (user.Account == Define.SYSTEM_USERNAME)
// {
// //超级管理员 看到全部通知
// listPage = db.Queryable<Sugar_Drone_message>().Where(c => c.is_delete == 0 || c.is_delete == null)
// //根据标题过滤
// .WhereIF(!string.IsNullOrEmpty(req.msg_title), c => c.msg_title.Contains(req.msg_title))
// //通知类型过滤
// .WhereIF(req.msg_type != null, c => c.msg_type == req.msg_type)
// //排序
// .OrderBy(c => c.createtime, OrderByType.Desc)
// //分页
// .ToPageList(req.page, req.limit, ref totalCount);
// }
// else
// {
// listPage = db.Queryable<Sugar_Drone_message>().Where(c => c.is_delete == 0 || c.is_delete == null)
// //根据标题过滤
// .WhereIF(!string.IsNullOrEmpty(req.msg_title), c => c.msg_title.Contains(req.msg_title))
// //创建人过滤
// .WhereIF(req.is_create == 1, c => c.createuser == user.Id)
// //接收人过滤
// .WhereIF(req.is_receiver == 1, c => SqlFunc.Subqueryable<Sugar_Drone_message_relevance>().Where(it => it.messageid == c.Id && it.userid == user.Id).Any())
// //通知类型过滤
// .WhereIF(req.msg_type != null, c => c.msg_type == req.msg_type)
// //排序
// .OrderBy(c => c.createtime, OrderByType.Desc)
// //分页
// .ToPageList(req.page, req.limit, ref totalCount);
// }
// var relList = db.Queryable<Sugar_Drone_message_relevance>().Where(c => c.userid == user.Id).Select(c => new { c.is_read, c.messageid }).ToList();
// JToken jTokenList = listPage.ToJson().ToJToken();
// for (int i = 0; i < jTokenList.Count(); i++)
// {
// var item = jTokenList[i];
// string messageid = item["Id"].ToString();
// var _relItem = relList.Where(c => c.messageid == messageid).FirstOrDefault();
// int? is_read = 0;
// if (_relItem != null)
// {
// is_read = _relItem.is_read;
// }
// item["is_read"] = is_read;
// }
// tableData.count = totalCount;
// tableData.data = jTokenList;
// return tableData;
// }
//}
///// <summary>
///// 查询通知信息详情
///// </summary>
///// <param name="id">通知信息id</param>
///// <returns></returns>
//public Sugar_Drone_message LoadMessage(string id)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// return db.Queryable<Sugar_Drone_message>().Where(c => c.Id == id).First();
// }
//}
///// <summary>
///// 根据权限查看通知详情
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public Sugar_Drone_message LoadMessageUser(string id)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var model = db.Queryable<Sugar_Drone_message_relevance, Sugar_Users>((r, u) => new JoinQueryInfos(
// JoinType.Left, r.userid == u.Id
// ))
// .Where(c => c.messageid == id).Select((r, u) => new
// {
// r.userid,
// r.username
// }).ToList();
// return db.Queryable<Sugar_Drone_message>().Where(c => c.Id == id).First();
// }
//}
///// <summary>
///// 添加通知消息
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddMessage(QueryDroneCaseRecipientUserReq req)
//{
// var _user = _auth.GetCurrentUser().User;
// var model = req.MapTo<Sugar_Drone_message>();
// model.Init(_user);
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //关联表数据
// List<Sugar_Drone_message_relevance> relevanceList = new List<Sugar_Drone_message_relevance>();
// //过滤条件:三表联合过滤
// //Sugar_Relevance 用到角色过滤
// //Sugar_Org 用到组织机构编码过滤
// //不使用SqlFunc.SubQeury过滤是因为组织机构向级联查询Id过多会导致Sql长度过大引起查询失效
// Expressionable<Sugar_Users, Sugar_Relevance, Sugar_Org> exp = new Expressionable<Sugar_Users, Sugar_Relevance, Sugar_Org>();
// exp.And((c, d, e) => false)
// //角色过滤
// .OrIF(req.roles.Length > 0, (c, d, e) => req.roles.Contains(d.SecondId) && d.Key == "UserRole")
// //用户过滤
// .OrIF(req.recipientUserId.Length > 0, (c, d, e) => req.recipientUserId.Contains(c.Id))
// //发送给所有人
// .OrIF(req.is_all == 1, (c, d, e) => c.Id != null);
// //查询组织机构编码
// var orgList = db.Queryable<Sugar_Org>().Where(c => req.orgs.Contains(c.Id)).Select(c => c.CascadeId).ToList();
// //遍历组织机构编码
// foreach (var item in orgList)
// {
// //部门过滤
// exp.Or((c, d, e) => SqlFunc.StartsWith(e.CascadeId, item));
// }
// //添加当前用户
// var userList = db.Queryable<Sugar_Users, Sugar_Relevance, Sugar_Org>((c, d, e) => new JoinQueryInfos(
// JoinType.Left, c.Id == d.FirstId,
// JoinType.Left, d.SecondId == e.Id
// )).Where(exp.ToExpression())
// .Select((c, d, e) => c)
// .GroupBy(c => new { c.Id, c.Name })
// .Select(c => new Sugar_Users { Id = c.Id, Name = c.Name })
// .ToList();
// var count = userList.Where(c => c.Id == _user.Id).Count();
// if (count == 0)
// {
// //添加当前用户
// userList.Add(new Sugar_Users { Id = _user.Id, Name = _user.Name });
// }
// //遍历用户
// for (int i = 0; i < userList.Count; i++)
// {
// var item = userList[i];
// Sugar_Drone_message_relevance modelRel = new Sugar_Drone_message_relevance();
// modelRel.Id = Guid.NewGuid().ToString();
// modelRel.userid = item.Id;
// modelRel.username = item.Name;
// modelRel.createtime = DateTime.Now;
// modelRel.createuser = _user.Id;
// modelRel.is_read = 0;
// modelRel.messageid = model.Id;
// relevanceList.Add(modelRel);
// }
// //多表数据 使用事务提交
// var transFlag = db.UseTran(() =>
// {
// //通知数据
// var flag = db.Insertable(model).ExecuteCommand();
// //关联数据
// var flag1 = db.Insertable(relevanceList).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// {
// return model.Id;
// }
// else
// {
// throw new Exception("添加失败");
// }
// }
//}
///// <summary>
///// 根据部门角色关联进行添加
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddMessRoleOrg(QueryDroneCaseRecipientOrgRoleReq req)
//{
// var _user = _auth.GetCurrentUser().User;
// var model = req.MapTo<Sugar_Drone_message>();
// model.Init(_user);
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //关联表数据
// List<Sugar_Drone_role_org_rel> relevanceList = new List<Sugar_Drone_role_org_rel>();
// //角色列表
// var roleList = db.Queryable<Sugar_Role>().WhereIF(req.roles.Length > 0, c => req.roles.Contains(c.Id)).WhereIF(req.is_all == 1, c => c.Id != null).ToList();
// //组织列表
// var orgList = db.Queryable<Sugar_Org>().WhereIF(req.orgs.Length > 0, c => req.orgs.Contains(c.Id)).WhereIF(req.is_all == 1, c => c.Id != null).ToList();
// for (int i = 0; i < roleList.Count; i++)
// {
// for (int j = 0; j < orgList.Count; j++)
// {
// //关联表
// Sugar_Drone_role_org_rel modelRel = new Sugar_Drone_role_org_rel();
// modelRel.Id = Guid.NewGuid().ToString();
// modelRel.roleid = roleList[i].Id;
// modelRel.orgid = orgList[j].Id;
// modelRel.createtime = DateTime.Now;
// modelRel.createuser = _user.Id;
// modelRel.messageid = model.Id;
// relevanceList.Add(modelRel);
// }
// }
// //多表数据 使用事务提交
// var transFlag = db.UseTran(() =>
// {
// //通知数据
// var flag = db.Insertable(model).ExecuteCommand();
// //关联数据
// var flag1 = db.Insertable(relevanceList).ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// {
// return model.Id;
// }
// else
// {
// throw new Exception("添加失败");
// }
// }
//}
///// <summary>
///// 编辑通知消息
///// </summary>
///// <param name="obj"></param>
///// <returns></returns>
//public string UpdateMessage(Sugar_Drone_message obj)
//{
// var _user = _auth.GetCurrentUser().User;
// obj.createusername = _user.Name;
// obj.createuser = _user.Id;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable(obj).ExecuteCommand();
// if (flag > 0)
// {
// return obj.Id;
// }
// else
// {
// throw new Exception("编辑失败");
// }
// }
//}
///// <summary>
///// 更新删除通知消息
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public string UpdateDelMessage(string id)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_message>().SetColumns(c => new Sugar_Drone_message
// {
// is_delete = 1
// }).Where(c => id == c.Id).ExecuteCommand();
// if (flag > 0)
// {
// return "删除成功";
// }
// else
// {
// throw new Exception("删除失败");
// }
// }
//}
///// <summary>
///// 设置通知已读
///// </summary>
///// <param name="messageid"></param>
///// <returns></returns>
//public string SetMessageRead(string messageid)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var model = db.Queryable<Sugar_Drone_message_relevance>()
// .Where(c => c.userid == user.Id && c.messageid == messageid)
// .First();
// int flag = 0;
// if (model == null)
// {
// model = new Sugar_Drone_message_relevance();
// model.Id = Guid.NewGuid().ToString();
// model.userid = user.Id;
// model.username = user.Name;
// model.createtime = DateTime.Now;
// model.createuser = user.Id;
// model.messageid = messageid;
// model.is_delete = 0;
// model.is_read = 1;
// flag = db.Insertable(model).ExecuteCommand();
// }
// else
// {
// flag = db.Updateable<Sugar_Drone_message_relevance>()
// .SetColumns(c => new Sugar_Drone_message_relevance { is_read = 1 })
// .Where(c => c.messageid == messageid && c.userid == user.Id)
// .ExecuteCommand();
// }
// if (flag > 0)
// return "设置成功";
// else
// throw new Exception("设置失败");
// }
//}
//#endregion
//#region 案件处理
///// <summary>
///// 案件处理
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddDroneCaseDeal(AddOrUpdateDroneCaseDealReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var model = req.info;
// model.Init(user);
// //处理状态:默认 1 办理中
// int? handle_status_id = 1;
// string handle_status_name = string.Empty;
// if (handle_status_id != null)
// {
// handle_status_name = handleStatusList.Where(c => c.id == handle_status_id).FirstOrDefault().name;
// }
// var picList = req.pic_list;
// var videoList = req.video_list;
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_case_deal";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_case_deal";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //新增数据
// db.Insertable(model).ExecuteCommand();
// //新增数据
// db.Insertable(filesList).ExecuteCommand();
// //更新案件状态
// db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo
// {
// handle_status_id = handle_status_id,
// handle_status_name = handle_status_name,
// is_illegal = req.is_illegal,
// deal_userid = user.Id,
// deal_username = user.Name
// })
// .Where(c => c.Id == model.caseid)
// .ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return "处理成功";
// else
// throw new Exception("处理失败");
// }
//}
///// <summary>
///// 更新案件处理数据
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string UpdateDroneCaseDeal(AddOrUpdateDroneCaseDealReq req)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var model = req.info;
// //处理状态:默认 1 办理中
// int? handle_status_id = 1;
// string handle_status_name = string.Empty;
// if (handle_status_id != null)
// {
// handle_status_name = handleStatusList.Where(c => c.id == handle_status_id).FirstOrDefault().name;
// }
// var picList = req.pic_list;
// var videoList = req.video_list;
// var existFiles = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == req.info.Id).ToList();
// List<Sugar_Drone_files> filesList = new List<Sugar_Drone_files>();
// //图片
// for (int i = 0; i < picList.Count; i++)
// {
// var item = picList[i];
// var count = existFiles.Where(c => c.path == item).Count();
// if (count > 0)
// continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = picList[i];
// fileModel.type = 0;
// fileModel.tablename = "drone_case_deal";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //视频
// for (int i = 0; i < videoList.Count; i++)
// {
// var item = videoList[i];
// var count = existFiles.Where(c => c.path == item).Count();
// if (count > 0)
// continue;
// Sugar_Drone_files fileModel = new Sugar_Drone_files();
// fileModel.Id = Guid.NewGuid().ToString();
// fileModel.path = videoList[i];
// fileModel.type = 1;
// fileModel.tablename = "drone_case_deal";
// fileModel.createtime = DateTime.Now;
// fileModel.createuser = user.Id;
// fileModel.createusername = user.Name;
// fileModel.is_delete = 0;
// fileModel.relid = model.Id;
// filesList.Add(fileModel);
// }
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //更新数据
// var flag = db.Updateable(model).ExecuteCommand();
// var flag2 = db.Insertable(filesList).ExecuteCommand();
// //更新案件状态
// var flag3 = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo
// {
// handle_status_id = handle_status_id,
// handle_status_name = handle_status_name,
// is_illegal = req.is_illegal
// })
// .Where(c => c.Id == model.caseid)
// .ExecuteCommand();
// });
// if (transFlag.IsSuccess)
// return "处理成功";
// else
// throw new Exception("处理失败");
// }
//}
///// <summary>
///// 处理查询
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public TableData LoadDroneCaseDeal(QueryDroneCaseDealReq req)
//{
// var user = _auth.GetCurrentUser().User;
// TableData tableData = new TableData();
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //总条数
// int totalNumber = 0;
// //关联查询
// var list = db.Queryable<Sugar_Drone_case_deal, Sugar_Drone_caseinfo>((c, d) => new JoinQueryInfos(
// JoinType.Left, c.caseid == d.Id
// )).Where((c, d) => (c.is_delete == null || c.is_delete == 0) && (d.is_delete == null || d.is_delete == 0) && d.Id != null)
// //是否创建人过滤
// .WhereIF(req.is_report == 1, (c, d) => c.createuser == user.Id)
// //开始时间
// .WhereIF(req.start_time != null, (c, d) => c.createtime > req.start_time)
// //结束时间
// .WhereIF(req.end_time != null, (c, d) => c.createtime < req.end_time)
// //排序
// .OrderBy(c => c.createtime, OrderByType.Desc)
// //分页
// .ToPageList(req.page, req.limit, ref totalNumber);
// tableData.data = list;
// tableData.count = totalNumber;
// return tableData;
// }
//}
///// <summary>
///// 获取处理详情
///// </summary>
///// <param name="id"></param>
///// <param name="caseid"></param>
///// <returns></returns>
//public AddOrUpdateDroneCaseDealReq GetDroneCaseDeal(string id, string caseid)
//{
// AddOrUpdateDroneCaseDealReq res = new AddOrUpdateDroneCaseDealReq();
// res.Init();
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //详情
// var info = db.Queryable<Sugar_Drone_case_deal>()
// .WhereIF(!string.IsNullOrEmpty(id), c => c.Id == id)
// .WhereIF(!string.IsNullOrEmpty(caseid), c => c.caseid == caseid)
// .First();
// if (info == null)
// {
// return res;
// }
// //文件
// var fileList = db.Queryable<Sugar_Drone_files>().Where(c => c.relid == info.Id && (c.is_delete == null || c.is_delete == 0) && c.tablename == "drone_case_deal").ToList();
// //图片
// var pic_list = fileList.Where(c => c.type == 0).GroupBy(c => c.path).Select(c => c.Key).ToList();
// //视频
// var video_list = fileList.Where(c => c.type == 1).GroupBy(c => c.path).Select(c => c.Key).ToList();
// res.info = info;
// res.pic_list = pic_list;
// res.video_list = video_list;
// var caseModel = db.Queryable<Sugar_Drone_caseinfo>()
// .Where(c => c.Id == info.caseid)
// .First();
// res.handle_status_id = caseModel.handle_status_id.Value;
// res.is_illegal = caseModel.is_illegal;
// return res;
// }
//}
///// <summary>
///// 删除处理
///// </summary>
///// <param name="ids"></param>
///// <returns></returns>
//public string DeleteDroneCaseDeal(string[] ids)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_case_deal>()
// .SetColumns(c => new Sugar_Drone_case_deal { is_delete = 1 })
// .Where(c => ids.Contains(c.Id))
// .ExecuteCommand();
// if (flag > 0)
// return "删除成功";
// else
// throw new Exception("删除失败");
// }
//}
//#endregion
//#region 图层
///// <summary>
///// 添加违建图层
///// </summary>
///// <param name="model"></param>
///// <returns></returns>
//public string AddIllegalBuildeLayer(Sugar_Drone_shp_data model)
//{
// var _user = _auth.GetCurrentUser().User;
// model.createtime = DateTime.Now;
// model.createuser = _user.Name;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //获取主键
// string _gid = App.Common.CommonData.GetMaxKeyVal("gid", "drone_shp_data", 1, _configuration);
// model.gid = int.Parse(_gid);//转为数字类型
// //string _gid = model.gid.ToString();
// //格式化数据
// string _wktModel = App.Common.CommonData.WktDataConvert(model.geom, "MULTIPOLYGON ZM", 4);
// model.geom = null;
// StringBuilder geomSql = new StringBuilder();
// geomSql.AppendFormat($" update drone_shp_data set geom = st_geomfromtext('{_wktModel}',4326) where gid = '{_gid}'");
// //批量更新面积
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" update drone_shp_data set area = st_area(st_transform(geom,4527)) where geom is not null and (area is null)");
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //插入图斑数据
// var flag = db.Insertable(model).ExecuteCommand();
// //修改图斑数据
// var flagGeom = db.Ado.ExecuteCommand(geomSql.ToString());
// //修改图斑面积
// var flagUpdate = db.Ado.ExecuteCommand(sql.ToString());
// });
// if (transFlag.IsSuccess)
// {
// return _gid;
// }
// else
// {
// throw new Exception("新增失败");
// }
// }
//}
///// <summary>
///// 编辑违法建筑和图层
///// </summary>
///// <param name="model"></param>
///// <returns></returns>
//public string UpdateIllegalBuildeLayer(Sugar_Drone_shp_data model)
//{
// var _user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //格式化数据
// string _wktModel = App.Common.CommonData.WktDataConvert(model.geom, "MULTIPOLYGON ZM", 4);
// model.geom = _wktModel;
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" update drone_shp_data set area = st_area(st_transform(geom,4527)) where gid = {model.gid}");
// //使用事务提交数据
// var transFlag = db.UseTran(() =>
// {
// //更新数据
// var flag = db.Updateable(model).ExecuteCommand();
// //更新图斑面积
// var flagUpdate = db.Ado.ExecuteCommand(sql.ToString());
// });
// //事务执行完成
// if (transFlag.IsSuccess)
// {
// return model.gid.ToString();
// }
// else
// {
// throw new Exception("编辑失败!");
// }
// }
//}
///// <summary>
///// 删除图斑
///// </summary>
///// <param name="gid"></param>
///// <returns></returns>
//public string DeleteDroneLayers(int gid)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Deleteable<Sugar_Drone_shp_data>().Where(c => c.gid == gid).ExecuteCommand();
// if (flag > 0)
// return "删除成功";
// else
// throw new Exception("删除失败");
// }
//}
///// <summary>
///// 违建图层详情
///// </summary>
///// <param name="gid"></param>
///// <returns></returns>
//public Sugar_Drone_shp_data LoadIllegalBuildeLayerData(int gid)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var list = db.Queryable<Sugar_Drone_shp_data>().Where(c => c.gid == gid).IgnoreColumns(c => new { c.geom }).First();
// return list;
// }
//}
///// <summary>
///// 查询主页违法图层数据
///// 获取所有图斑,主页用
///// </summary>
///// <param name="reqObj"></param>
///// <returns></returns>
//public JToken LoadAllDroneGeoJson(QueryAllDroneGeoJsonReq reqObj)
//{
// QueryGeoJsonCommonReq req = new QueryGeoJsonCommonReq();
// req.tablename = "drone_shp_data";
// StringBuilder whereBuilder = new StringBuilder();
// whereBuilder.AppendFormat($" where 1=1");
// if (!string.IsNullOrEmpty(reqObj.typeid))
// {
// whereBuilder.AppendFormat($" and relid in (select \"Id\" from drone_caseinfo where typeid = '{reqObj.typeid}')");
// }
// req.where = whereBuilder.ToString();
// req.pageIndex = 1;
// req.limit = 2000;
// var res = CommonData.PgsqlGeoJsonCommon(req, _configuration);
// return res;
//}
///// <summary>
///// 获取GeoJson
///// PC获取图层的GeoJson判读页面用
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public JToken GetDroneGeoJson(string id)
//{
// QueryGeoJsonCommonReq req = new QueryGeoJsonCommonReq();
// req.tablename = "drone_shp_data";
// req.where = "where relid = '" + id + "'";
// req.pageIndex = 1;
// req.limit = 2000;
// var res = CommonData.PgsqlGeoJsonCommon(req, _configuration);
// return res;
//}
///// <summary>
///// app获取GeoJson
///// 替代app获取中心点和图层坐标点集合
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public JToken GetDroneGeoJsonApp(string id)
//{
// var user = _auth.GetCurrentUser().User;
// StringBuilder sqlColumn = new StringBuilder();
// sqlColumn.AppendFormat($" select aa.gid,aa.relid as id,bb.handle_status_id from drone_shp_data aa");
// sqlColumn.AppendFormat($" left join drone_caseinfo bb on aa.relid = bb.\"Id\" ");
// sqlColumn.AppendFormat($" where bb.is_intact = 1");
// sqlColumn.AppendFormat($" and (is_delete = 0 or is_delete is null)");
// sqlColumn.AppendFormat($" and (is_closed = 0 or is_closed is null)");
// sqlColumn.AppendFormat($" and geom is not null");
// sqlColumn.AppendFormat($" and (bb.communityid in (select \"SecondId\" from relevance where \"FirstId\" = '{user.Id}' and \"Key\" = 'UserOrg') or bb.createuser = '{user.Id}')");
// if (!string.IsNullOrEmpty(id))
// sqlColumn.AppendFormat($" and aa.relid = '{id}'");
// sqlColumn.AppendFormat($" order by aa.gid asc ");
// StringBuilder sqlGeom = new StringBuilder();
// sqlGeom.AppendFormat($" select st_asgeojson(\"geom\") geom from drone_shp_data aa");
// sqlGeom.AppendFormat($" left join drone_caseinfo bb on aa.relid = bb.\"Id\" ");
// sqlGeom.AppendFormat($" where bb.is_intact = 1");
// sqlGeom.AppendFormat($" and (is_delete = 0 or is_delete is null)");
// sqlGeom.AppendFormat($" and (is_closed = 0 or is_closed is null)");
// sqlGeom.AppendFormat($" and geom is not null");
// sqlGeom.AppendFormat($" and (bb.communityid in (select \"SecondId\" from relevance where \"FirstId\" = '{user.Id}' and \"Key\" = 'UserOrg') or bb.createuser = '{user.Id}')");
// if (!string.IsNullOrEmpty(id))
// sqlGeom.AppendFormat($" and aa.relid = '{id}'");
// sqlGeom.AppendFormat($" order by aa.gid asc ");
// var res = CommonData.PgsqlGeoJsonCommon(sqlColumn, sqlGeom, 1, 99999, _configuration);
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var dtCenter = db.Queryable<Sugar_Drone_caseinfo, Sugar_Drone_shp_data>((a, b) => new JoinQueryInfos(
// JoinType.Left, a.Id == b.relid
// ))
// //过滤判读、是否删除、是否关闭、geom不为空
// .Where((a, b) => a.is_intact == 1 && (a.is_delete == 0 || a.is_delete == null) && (a.is_closed == 0 || a.is_closed == null) && b.geom != null)
// //根据权限过滤、组织机构权限、自己添加的数据权限
// .Where($" ( a.communityid in (select \"SecondId\" from relevance where \"FirstId\" = '{user.Id}' and \"Key\" = 'UserOrg') or a.createuser = '{user.Id}')")
// //是否查询单条数据
// .WhereIF(!string.IsNullOrEmpty(id), (a, b) => a.Id == id)
// //查询字段
// .Select<dynamic>("gid,a.\"Id\" as id,typename,st_asgeojson(ST_Centroid(geom)) as point")
// //转为DataTable
// .ToDataTable();
// //转换格式
// var jtokenCenter = dtCenter.ToJson().ToJToken();
// //feature集合
// JArray centerFeatureArr = new JArray();
// //遍历每条数据
// foreach (var item in jtokenCenter)
// {
// //feature对象
// JObject centerFeatureObj = new JObject();
// //类型
// string _typename = item["typename"] == null ? "" : item["typename"].ToString();
// if (_typename.IndexOf("-") > 0)
// _typename = _typename.Substring(_typename.LastIndexOf("-") + 1);
// //属性
// JObject property = new JObject();
// property.Add("id", item["id"]);
// property.Add("gid", item["gid"]);
// property.Add("typename", _typename);
// //给feature对象赋值
// centerFeatureObj.Add("type", "Feature");
// centerFeatureObj.Add("properties", property);
// centerFeatureObj.Add("geometry", item["point"].ToString().ToJToken());
// //添加到feature集合
// centerFeatureArr.Add(centerFeatureObj);
// }
// JObject pointObj = new JObject();
// pointObj.Add("type", "FeatureCollection");
// pointObj.Add("features", centerFeatureArr);
// JObject obj = new JObject();
// obj.Add("geojson", res);
// obj.Add("points", pointObj);
// return obj;
// }
//}
///// <summary>
///// 获取所有案件中心点
///// APP获取中心点和图层的坐标点集合
///// </summary>
///// <returns></returns>
//public JToken GetAllDroneCaseCenterApp(string id)
//{
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var query = db.Queryable<Sugar_Drone_caseinfo, Sugar_Drone_shp_data>((a, b) => new JoinQueryInfos(
// JoinType.Left, a.Id == b.relid
// ))
// //过滤判读、是否删除、是否关闭、geom不为空
// .Where((a, b) => a.is_intact == 1 && (a.is_delete == 0 || a.is_delete == null) && b.geom != null)
// //根据权限过滤、组织机构权限、自己添加的数据权限
// .WhereIF(user.Account != Define.SYSTEM_USERNAME, $" ( a.communityid in (select \"SecondId\" from relevance where \"FirstId\" = '{user.Id}' and \"Key\" = 'UserOrg') or a.createuser = '{user.Id}')")
// //是否查询单条数据
// .WhereIF(!string.IsNullOrEmpty(id), (a, b) => a.Id == id);
// //查询:案件表关联图层表
// var dt = query
// //查询字段
// .Select<dynamic>("a.case_no,a.handle_status_id,a.\"Id\" as id,a.countyname,a.streetname,a.communityname,a.createtime,a.case_description,a.address,a.typename,a.handle_status_name,st_astext(ST_Centroid(geom)) as point,st_astext(geom) cover")
// //转为DataTable
// .ToDataTable();
// //转换JToken
// var resJToken = dt.ToJson().ToJToken();
// //返回的Array数据
// JArray array = new JArray();
// for (int i = 0; i < resJToken.Count(); i++)
// {
// JObject obj = new JObject();
// var item = resJToken[i];
// obj.Add("id", item["id"]);
// obj.Add("case_no", item["case_no"]);
// obj.Add("handle_status_id", item["handle_status_id"]);
// obj.Add("countyname", item["countyname"]);
// obj.Add("streetname", item["streetname"]);
// obj.Add("communityname", item["communityname"]);
// obj.Add("createtime", item["createtime"]);
// obj.Add("case_description", item["case_description"]);
// obj.Add("address", item["address"]);
// obj.Add("typename", item["typename"]);
// obj.Add("handle_status_name", item["handle_status_name"]);
// //中心点数据
// string pointStr = item["point"].ToString();
// var pointInfo = pointStr.Replace("POINT(", "").Replace(")", "").Split(" ");
// //中心点经纬度
// obj.Add("longitude", Decimal.Round(Decimal.Parse(pointInfo[0]), 6));
// obj.Add("latitude", Decimal.Round(Decimal.Parse(pointInfo[1]), 6));
// //面数据
// string coverStr = item["cover"].ToString();
// //面的所有点
// var point_list = coverStr.Replace("MULTIPOLYGON ZM (((", "").Replace(")", "").Split(",");
// //面的数组
// JArray pointArray = new JArray();
// //遍历面的数据
// foreach (var pointItem in point_list)
// {
// JObject pointObj = new JObject();
// var pointItemList = pointItem.Split(" ");
// pointObj.Add("longitude", Decimal.Round(Decimal.Parse(pointItemList[0]), 6));
// pointObj.Add("latitude", Decimal.Round(Decimal.Parse(pointItemList[1]), 6));
// pointArray.Add(pointObj);
// }
// //添加面的点数据
// obj.Add("point_list", pointArray);
// array.Add(obj);
// }
// return array;
// }
//}
///// <summary>
///// 获取GeoServer地址
///// </summary>
///// <returns></returns>
//public string GetGeoServerAddress()
//{
// string tenantId = HttpContextExt.GetTenantId();
// if (string.IsNullOrEmpty(tenantId)) throw new System.Exception("租户id不能为空");
// var geoServerModel = _options.Value.TenantList.Where(c => c.id == tenantId).FirstOrDefault();
// if (geoServerModel != null)
// return geoServerModel.geoserver;
// throw new Exception("未查询到数据");
//}
///// <summary>
///// 根据经纬度获取组织机构
///// </summary>
///// <param name="lng"></param>
///// <param name="lat"></param>
///// <returns></returns>
//public JObject GetOrgAreaByPoint(decimal lng, decimal lat)
//{
// //县id
// string countyid = "";
// string countyname = "";
// //镇id
// string streetid = "";
// string streetname = "";
// //村id
// string communityid = "";
// string communityname = "";
// //SqlSugar实例
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //查询坐标属于哪个县
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" SELECT xzqmc FROM \"shp_drone_county\" where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'");
// var countyList = db.SqlQueryable<dynamic>(sql.ToString()).ToList();
// if (countyList.Count > 0)
// {
// //县名称
// string countyName = countyList[0].xzqmc;
// //根据名称查询组织机构
// var countyModel = db.Queryable<Sugar_Org>().Where(c => c.Name == countyName).First();
// //组织机构不为空给县id赋值
// if (countyModel != null)
// {
// countyid = countyModel.Id;
// countyname = countyModel.Name;
// }
// }
// //查询坐标属于哪个镇
// sql = new StringBuilder();
// sql.AppendFormat($" SELECT xzqmc FROM \"shp_drone_town\" where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'");
// var streetList = db.SqlQueryable<dynamic>(sql.ToString()).ToList();
// if (streetList.Count > 0)
// {
// //镇名称
// string streetName = streetList[0].xzqmc;
// //根据名称查询组织机构
// var streetModel = db.Queryable<Sugar_Org>().Where(c => c.Name == streetName).First();
// //组织机构不为空给镇id赋值
// if (streetModel != null)
// {
// streetid = streetModel.Id;
// streetname = streetModel.Name;
// }
// }
// if (!string.IsNullOrEmpty(streetid))
// {
// //查询组织机构属于哪个村
// sql = new StringBuilder();
// sql.AppendFormat($" SELECT zldwmc FROM \"shp_drone_community\" where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'");
// var communityidList = db.SqlQueryable<dynamic>(sql.ToString()).ToList();
// if (communityidList.Count > 0)
// {
// //村名称
// string communityName = communityidList[0].zldwmc;
// //根据村名称和镇id查询组织机构
// var communityModel = db.Queryable<Sugar_Org>().Where(c => SqlFunc.StartsWith(c.Name, communityName) && c.ParentId == streetid).First();
// //组织机构不为空给村id赋值
// if (communityModel != null)
// {
// communityid = communityModel.Id;
// communityname = communityModel.Name;
// }
// }
// }
// //拼接json数据返回到前台
// JObject obj = new JObject();
// obj.Add("countyid", countyid);
// obj.Add("countyname", countyname);
// obj.Add("streetid", streetid);
// obj.Add("streetname", streetname);
// obj.Add("communityid", communityid);
// obj.Add("communityname", communityname);
// return obj;
// }
//}
//#endregion
//#region 无人机轨迹
///// <summary>
///// 批量添加坐标点
///// </summary>
///// <param name="req"></param>
///// <returns></returns>
//public string AddDronePoints(List<AddDronePointsReq> req)
//{
// var user = _auth.GetCurrentUser().User;
// List<Sugar_Drone_point_data> list = new List<Sugar_Drone_point_data>();
// for (int i = 0; i < req.Count; i++)
// {
// var item = req[i];
// Sugar_Drone_point_data model = new Sugar_Drone_point_data();
// model.gid = Guid.NewGuid().ToString();
// model.createuser = user.Account;
// model.createtime = item.createtime;
// model.geom = $"POINT({item.lng} {item.lat})";
// list.Add(model);
// }
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Insertable(list).ExecuteCommand();
// if (flag > 0)
// return "添加成功";
// else
// throw new Exception("添加失败");
// }
//}
//#endregion
//#region 用户
///// <summary>
///// 获取当前用户的信息
///// </summary>
///// <returns></returns>
//public JToken GetCurrentUser()
//{
// var current = _auth.GetCurrentUser();
// var user = current.User;
// var roles = current.Roles;
// JObject obj = new JObject();
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// //用户
// JToken userJtoken = user.ToJson().ToJToken();
// //权限
// var count = roles.Where(c => c.Name.Contains("管理员")).Count();
// int result = 0;
// if (count > 0)
// result = 1;
// obj.Add("user", userJtoken);
// obj.Add("auth", result);
// //查询geoserver
// string geoserver = "";
// string tenantId = HttpContextExt.GetTenantId();
// if (!string.IsNullOrEmpty(tenantId))
// {
// var tenantModel = _options.Value.TenantList.Where(c => c.id == tenantId).FirstOrDefault();
// if (tenantModel != null)
// {
// geoserver = tenantModel.geoserver;
// }
// }
// obj.Add("geoserver", geoserver);
// return obj;
// }
//}
//#endregion
//#region 统计
///// <summary>
///// 按分类统计
///// </summary>
///// <param name="type"></param>
///// <param name="start"></param>
///// <param name="end"></param>
///// <returns></returns>
//public JToken CaseInfoTypeCensus(string type, DateTime? start, DateTime? end)
//{
// switch (type)
// {
// case "month":
// //一月内
// start = DateTime.Now.AddMonths(-1);
// break;
// case "halfyear":
// //半年内
// start = DateTime.Now.AddMonths(-6);
// break;
// case "year":
// start = DateTime.Now.AddYears(-1);
// break;
// default:
// break;
// }
// var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var caseList = db.Queryable<Sugar_Drone_caseinfo>()
// //状态未删除
// .Where(c => c.is_delete == null || c.is_delete == 0)
// //已判读
// .Where(c => c.is_intact == 1)
// //用户当前过滤
// .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == "UserOrg").Any() || c.createuser == user.Id)
// //过滤
// .WhereIF(start != null, c => c.createtime >= start)
// .WhereIF(end != null, c => c.createtime <= end.Value.AddDays(1))
// .GroupBy(c => new { c.typeid, c.typename })
// .Select(c => new
// {
// c.typeid,
// c.typename,
// count = SqlFunc.AggregateCount(c.Id)
// }).ToList();
// return caseList.ToJson().ToJToken();
// }
//}
///// <summary>
///// 按组织机构统计案件数量
///// </summary>
///// <returns></returns>
//public object CaseInfoOrgCensus()
//{
// var _authData = _auth.GetCurrentUser();
// //当前用户的组织机构
// var orgs = _authData.Orgs;
// var user = _authData.User;
// //县级组织机构id
// string[] countyids = null;
// //镇级组织机构id
// string[] streetids = null;
// //村级组织机构id
// //string[] communityid = null;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// countyids = db.Queryable<Sugar_Org>().Where(c => SqlFunc.EndsWith(c.Name, "县")).Select(c => c.Id).ToArray();
// streetids = db.Queryable<Sugar_Org>().Where(c => countyids.Contains(c.ParentId)).Select(c => c.Id).ToArray();
// //communityid = db.Queryable<Sugar_Org>().Where(c => streetids.Contains(c.ParentId)).Select(c => c.Id).ToArray();
// //当前用户的县级组织机构id
// var orgsCounty = orgs.Where(c => countyids.Contains(c.Id)).Select(c => c.Id).ToList();
// //当前用户的镇级组织机构id
// var orgsStreet = orgs.Where(c => streetids.Contains(c.Id)).Select(c => c.Id).ToList();
// if (orgsCounty.Count > 0)
// {
// //当前用户的县级权限,查询镇级的数据
// return GetDroneCaseOrgCensus("county", orgsCounty[0], user, db);
// }
// else if (orgsStreet.Count > 0)
// {
// //当前用户的镇级权限,查询村级的数据
// return GetDroneCaseOrgCensus("street", orgsStreet[0], user, db);
// }
// return null;
// }
//}
///// <summary>
///// 获取按组织机构统计案件数量
///// </summary>
///// <param name="type"></param>
///// <param name="orgid"></param>
///// <param name="user"></param>
///// <param name="db"></param>
///// <returns></returns>
//private object GetDroneCaseOrgCensus(string type, string orgid, User user, SqlSugarClient db)
//{
// //查询当前用户分配的任务
// var list = db.Queryable<Sugar_Drone_caseinfo>()
// //是否完整性、是否删除过滤
// .Where(c => c.is_intact == 1 && (c.is_delete == 0 || c.is_delete == null))
// //执行人过滤
// .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == "UserOrg").Any() || c.createuser == user.Id)
// .GroupBy(c => new
// {
// c.streetid,
// c.communityid,
// c.handle_status_id,
// c.is_illegal,
// })
// .Select(c => new
// {
// c.streetid,
// c.communityid,
// c.handle_status_id,
// c.is_illegal,
// count = SqlFunc.AggregateCount(c.Id),
// })
// .ToList();
// var censusOrgs = new List<Sugar_Org>();
// JArray array = new JArray();
// //查询组织机构的下级机构orgid有可能是县级id也有可能是镇级id
// censusOrgs = db.Queryable<Sugar_Org>().Where(c => c.ParentId == orgid).ToList();
// //遍历下级机构
// foreach (var item in censusOrgs)
// {
// string _name = item.Name;
// JObject _obj = new JObject();
// _obj.Add("name", _name);
// if (type == "county")
// {
// //下级用户是镇级所有通过streetid来过滤
// var _list = list.Where(c => c.streetid == item.Id).ToList();
// _obj.Add("count", _list.Sum(c => c.count));
// //办理中
// _obj.Add("status0", _list.Where(c => c.handle_status_id == 0).Sum(c => c.count));
// //办理中
// _obj.Add("status1", _list.Where(c => c.handle_status_id == 1).Sum(c => c.count));
// //已办结
// _obj.Add("status2", _list.Where(c => c.handle_status_id == 2).Sum(c => c.count));
// //确认违法
// _obj.Add("illegal", _list.Where(c => c.is_illegal == 1).Sum(c => c.count));
// }
// else if (type == "street")
// {
// //下级用户是村级所有通过communityid来过滤
// var _list = list.Where(c => c.communityid == item.Id).ToList();
// _obj.Add("count", _list.Sum(c => c.count));
// //办理中
// _obj.Add("status0", _list.Where(c => c.handle_status_id == 0).Sum(c => c.count));
// //办理中
// _obj.Add("status1", _list.Where(c => c.handle_status_id == 1).Sum(c => c.count));
// //已办结
// _obj.Add("status2", _list.Where(c => c.handle_status_id == 2).Sum(c => c.count));
// //确认违法
// _obj.Add("illegal", _list.Where(c => c.is_illegal == 1).Sum(c => c.count));
// }
// array.Add(_obj);
// }
// //排序
// var _array = array.OrderByDescending(c => int.Parse(c["count"].ToString())).ToList();
// return _array;
//}
//#endregion
///*
// 需要过滤权限的几个方法:
//查询列表数据接口
//LoadCaseInfoList
//LoadCaseInfoData
//CaseCountCensus
//图斑数据接口
//GetDroneGeoJsonApp
//GetAllDroneCaseCenterApp
//统计相关接口
//CaseInfoTypeCensus
//CaseInfoOrgCensus
//GetDroneCaseOrgCensus
//现在统一使用:
//是否判读1
//是否删除 0 或 null
//分配到组织机构 或 自己创建的
// .Where(c => c.is_intact == 1 && (c.is_delete == 0 || c.is_delete == null))
// //执行人过滤
// .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable<Sugar_Relevance>().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == "UserOrg").Any() || c.createuser == user.Id)
// */
//#region 大屏展示
///// <summary>
///// 正式案件记录
///// </summary>
///// <returns></returns>
//public List<Sugar_Drone_caseinfo> LoadDroneCase(int? is_intact)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var list = db.Queryable<Sugar_Drone_caseinfo>()
// .WhereIF(is_intact != null, c => c.is_intact == is_intact)
// .OrderBy(c => c.createtime, OrderByType.Desc).Take(20).ToList();
// return list;
// }
//}
///// <summary>
///// 最新案件处理
///// </summary>
///// <returns></returns>
//public object LoadDroneCaseDeal(int? istoday)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// DateTime? today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
// var list = db.Queryable<Sugar_Drone_case_deal, Sugar_Drone_caseinfo>((d, c) => new JoinQueryInfos(
// JoinType.Left, d.caseid == c.Id
// ))
// .WhereIF(istoday == 1, (d, c) => d.createtime >= today)
// //.Where((d, c) => c.Id != null)
// .OrderBy((d, c) => d.createtime, OrderByType.Desc)
// .Select((d, c) => new { deal = d, caseinfo = c })
// .Take(20)
// .ToList();
// return list;
// }
//}
///// <summary>
///// 上报和处理案件数量
///// </summary>
///// <returns></returns>
//public JObject GetTodayReportAndDealCount()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
// var reportCount = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.createtime > today).Count();
// var dealCount = db.Queryable<Sugar_Drone_case_deal>().Where(c => c.createtime > today).Count();
// JObject obj = new JObject();
// obj.Add("reportCount", reportCount);
// obj.Add("dealCount", dealCount);
// return obj;
// }
//}
///// <summary>
///// 案件数量统计
///// </summary>
///// <returns></returns>
//public JObject GetDroneCaseCount()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var notIntactCount = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.is_intact == 0).Count();
// var intactCount = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.is_intact == 1).Count();
// JObject obj = new JObject();
// obj.Add("notIntactCount", notIntactCount);
// obj.Add("intactCount", intactCount);
// return obj;
// }
//}
///// <summary>
///// 违建分类统计
///// </summary>
///// <returns></returns>
//public object GetDroneTypeCount()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var list = db.Queryable<Sugar_Drone_caseinfo>().GroupBy(c => new { c.typename })
// .Select(c => new
// {
// c.typename,
// count = SqlFunc.AggregateCount(c.Id)
// }).ToList();
// JArray array = new JArray();
// for (int i = 0; i < list.Count; i++)
// {
// var item = list[i];
// string typename = item.typename;
// int count = item.count;
// if (string.IsNullOrEmpty(typename))
// typename = "未知";
// JObject obj = new JObject();
// obj.Add("typename", typename);
// obj.Add("count", count);
// array.Add(obj);
// }
// return array;
// }
//}
///// <summary>
///// 按乡镇统计
///// </summary>
///// <returns></returns>
//public JArray GetDroneOrgCount()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var countyid = db.Queryable<Sugar_Org>().Where(c => c.Name == "费县").Select(c => c.Id).First();
// var streetList = db.Queryable<Sugar_Org>().Where(c => c.ParentId == countyid).OrderBy(c => c.SortNo, OrderByType.Asc).OrderBy(c => c.CreateTime, OrderByType.Asc).ToList();
// //案件上报数量
// var caseList = db.Queryable<Sugar_Drone_caseinfo>().GroupBy(c => new { c.streetid })
// .Select(c => new
// {
// c.streetid,
// count = SqlFunc.AggregateCount(c.Id),
// }).ToList();
// //案件处理数量
// //var dealList = db.Queryable<Sugar_Drone_case_deal, Sugar_Drone_caseinfo>((d, c) => new JoinQueryInfos(
// // JoinType.Left, d.caseid == c.Id
// // ))
// // .Where((d, c) => c.streetid != null && c.streetid != "")
// // .GroupBy((d, c) => new { c.streetid })
// // .Select((d, c) => new
// // {
// // c.streetid,
// // dealCount = SqlFunc.AggregateCount(c.Id)
// // }).ToList();
// var today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
// JArray array = new JArray();
// //遍历乡镇
// for (int i = 0; i < streetList.Count; i++)
// {
// //当前乡镇
// var _item = streetList[i];
// int _reportCount = 0;
// //当前乡镇上报的数量
// var _caseModel = caseList.Where(c => c.streetid == _item.Id).FirstOrDefault();
// //今日案件数
// var todayCount = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.streetid == _item.Id && c.createtime > today).Count();
// //历史案件数
// var historyCount = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.streetid == _item.Id && c.createtime < today).Count();
// if (_caseModel != null)
// {
// _reportCount = _caseModel.count;
// }
// JObject obj = new JObject();
// obj.Add("name", _item.Name);
// obj.Add("reportCount", _reportCount);
// obj.Add("todayCount", todayCount);
// obj.Add("historyCount", historyCount);
// array.Add(obj);
// }
// return array;
// }
//}
///// <summary>
///// 数据统计,按天统计图表
///// </summary>
///// <returns></returns>
//public JArray GetDroneCaseDateCount(string type)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// DateTime begin = DateTime.Parse(DateTime.Now.AddDays(-14).ToString("yyyy-MM-dd"));
// if (type == "week")
// {
// begin = DateTime.Parse(DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"));
// }
// else if (type == "month")
// {
// begin = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd"));
// }
// //查询案件数据
// var reportList = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.createtime > begin).Select(c => new { c.Id, c.createtime }).ToList();
// var dealList = db.Queryable<Sugar_Drone_case_deal>().Where(c => c.createtime > begin).Select(c => new { c.Id, c.createtime }).ToList();
// JArray array = new JArray();
// while (begin < DateTime.Now)
// {
// JObject obj = new JObject();
// //日期
// obj.Add("day", begin.ToString("yyyy-MM-dd"));
// //过滤查询数量
// int reportCount = reportList.Where(c => c.createtime >= begin && c.createtime < begin.AddDays(1)).Count();
// int dealCount = dealList.Where(c => c.createtime >= begin && c.createtime < begin.AddDays(1)).Count();
// //数量
// obj.Add("reportCount", reportCount);
// obj.Add("dealCount", dealCount);
// array.Add(obj);
// //日期+1天
// begin = begin.AddDays(1);
// }
// return array;
// }
//}
///// <summary>
///// 查询GeoJson
///// </summary>
///// <returns></returns>
//public JToken GetDroneGeoJson()
//{
// QueryGeoJsonCommonReq req = new QueryGeoJsonCommonReq();
// req.tablename = "view_drone_shp_data";
// req.pageIndex = 1;
// req.limit = 2000;
// var res = CommonData.PgsqlGeoJsonCommon(req, _configuration);
// return res;
//}
///// <summary>
///// 获取无人机的位置
///// </summary>
///// <returns></returns>
//public object GetDroneLocationPoints()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// string time = DateTime.Now.AddMinutes(-3).ToString("yyyy-MM-dd HH:mm:ss");
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" select \"createuser\",\"createtime\", replace(replace(replace(st_astext(geom),'POINT(',''),')',''),' ',',') point from ");
// sql.AppendFormat($" (");
// sql.AppendFormat($" SELECT \"createuser\",createtime,geom,\"row_number\"() OVER (PARTITION by \"createuser\" ORDER BY createtime desc) rownum FROM \"drone_point_data\" where createtime > '{time}' ");
// sql.AppendFormat($" ) aa where aa.rownum = 1");
// //select createuser , createtime , replace(replace(replace(st_astext(geom),'POINT(',''),')',''),' ',',') point from ");
// //(");
// // SELECT createuser ,createtime,geom, row_number () OVER (PARTITION by createuser ORDER BY createtime desc) rownum FROM drone_point_data where createtime > '{time}' ");
// //) aa where aa.rownum = 1");
// var list = db.SqlQueryable<dynamic>(sql.ToString()).ToList();
// return list;
// }
//}
///// <summary>
///// 获取无人机的历史轨迹
///// </summary>
///// <returns></returns>
//public object GetDroneLocationPointsHistory(string startTime, string endTime, string userId)
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" select \"createuser\",\"createtime\", replace(replace(replace(st_astext(geom),'POINT(',''),')',''),' ',',') point FROM \"drone_point_data\" where createtime > '{startTime}' and createtime < '{endTime}' order by \"createtime\" desc");
// var list = db.SqlQueryable<dynamic>(sql.ToString()).ToList();
// return list;
// }
//}
///// <summary>
///// 无人机飞行 假数据
///// </summary>
///// <returns></returns>
//public object GetDroneLocationPointsFalse()
//{
// JArray array = new JArray();
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" select \"createuser\",\"createtime\", replace(replace(replace(st_astext(geom),'POINT(',''),')',''),' ',',') point from ");
// sql.AppendFormat($" drone_point_data where createtime > '2022-02-11' and createtime < '2022-02-12' order by createtime asc ");
// //var listFirst = db.SqlQueryable<dynamic>(sql.ToString()).ToList().ToJson();
// sql = new StringBuilder();
// sql.AppendFormat($" select \"createuser\",\"createtime\", replace(replace(replace(st_astext(geom),'POINT(',''),')',''),' ',',') point from ");
// sql.AppendFormat($" drone_point_data where createtime > '2022-02-15' and createtime < '2022-02-16' order by createtime asc ");
// //var listSecond = db.SqlQueryable<dynamic>(sql.ToString()).ToList().ToJson();
// JObject objA = new JObject();
// objA.Add("name", "listFirst");
// objA.Add("point", (JToken)JsonConvert.DeserializeObject("[{\"createuser\":\"13280580815\",\"createtime\":\"2022-04-22 14:22:22\",\"point\":\"117.72339712649222,35.05450202665419\"}]"));
// //117.72339712649222,35.05450202665419
// array.Add(objA);
// JObject objB = new JObject();
// objB.Add("name", "listSecond");
// objB.Add("point", (JToken)JsonConvert.DeserializeObject("[{\"createuser\":\"13280580815\",\"createtime\":\"2022-04-22 14:22:22\",\"point\":\"117.71858685321234,35.22679558236362\"}]"));
// //117.71858685321234,35.22679558236362
// array.Add(objB);
// JObject objC = new JObject();
// objC.Add("name", "listSecond");
// objC.Add("point", (JToken)JsonConvert.DeserializeObject("[{\"createuser\":\"13280580815\",\"createtime\":\"2022-04-22 14:22:22\",\"point\":\"118.07365607557824,35.20530775653663\"}]"));
// //118.07365607557824,35.20530775653663
// array.Add(objC);
// JObject objD = new JObject();
// objD.Add("name", "listSecond");
// objD.Add("point", (JToken)JsonConvert.DeserializeObject("[{\"createuser\":\"13280580815\",\"createtime\":\"2022-04-22 14:22:22\",\"point\":\"117.98160109200148,35.28244211798609\"}]"));
// //117.98160109200148,35.28244211798609
// array.Add(objD);
// JObject objE = new JObject();
// objE.Add("name", "listSecond");
// objE.Add("point", (JToken)JsonConvert.DeserializeObject("[{\"createuser\":\"13280580815\",\"createtime\":\"2022-04-22 14:22:22\",\"point\":\"117.97323242064601,35.521189135282015\"}]"));
// //117.97323242064601,35.521189135282015
// array.Add(objE);
// return array;
// }
//}
///// <summary>
///// 获取无人机的在线率
///// </summary>
///// <returns></returns>
//public JObject GetDroneOnlinePercent()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// string time = DateTime.Now.AddMinutes(-3).ToString("yyyy-MM-dd HH:mm:ss");
// StringBuilder sql = new StringBuilder();
// sql.AppendFormat($" select \"createuser\",\"createtime\", replace(replace(replace(st_astext(geom),'POINT(',''),')',''),' ',',') point from ");
// sql.AppendFormat($" (");
// sql.AppendFormat($" SELECT \"createuser\",createtime,geom,\"row_number\"() OVER (PARTITION by \"createuser\" ORDER BY createtime desc) rownum FROM \"drone_point_data\" where createtime > '{time}' ");
// sql.AppendFormat($" ) aa where aa.rownum = 1");
// //无人机在线数量
// var onlineCount = db.SqlQueryable<dynamic>(sql.ToString()).Count();
// //无人机的总数量
// var totalCount = db.SqlQueryable<dynamic>("select distinct(\"createuser\") \"name\" from drone_point_data").Count();
// onlineCount += 5;
// totalCount += 5;
// decimal onlinePercent = Decimal.Round(100 * Decimal.Parse(onlineCount.ToString()) / Decimal.Parse(totalCount.ToString()), 2);
// JObject obj = new JObject();
// obj.Add("onlineCount", onlineCount);
// obj.Add("offlineCount", totalCount - onlineCount);
// obj.Add("totalCount", totalCount);
// obj.Add("onlinePercent", onlinePercent);
// return obj;
// }
//}
///// <summary>
///// 统计图表已完成未完成数量
///// </summary>
///// <returns></returns>
//public JObject GetDroneCaseCompleteCount()
//{
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// JObject obj = new JObject();
// var query = db.Queryable<Sugar_Drone_caseinfo>();
// //线索总数
// var cluesCount = query.Count();
// //处理中数量1
// var inHandCount = query.Where(c => c.handle_status_id == 1).Count();
// //已完成数量2
// var completeCount = query.Where(c => c.handle_status_id == 2).Count();
// obj.Add("cluesCount", cluesCount);
// obj.Add("inHandCount", inHandCount);
// obj.Add("completeCount", completeCount);
// return obj;
// }
//}
//#endregion
//#region 复提更新
///// <summary>
///// 复提案件
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public bool ReSubmitCaseInfo(ReSubmitInfo submitInfo)
//{
// //var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo
// {
// is_intact = 6,
// examinecomments = submitInfo.Remark
// })
// .Where(c => c.case_no == submitInfo.CaseNo)
// .ExecuteCommand();
// if (flag > 0)
// {
// return true;
// }
// else
// {
// return false;
// }
// }
//}
//#endregion
//#region 案件关闭
///// <summary>
///// 案件关闭
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//public bool CloseCaseInfo(CloseCaseInfo submitInfo)
//{
// //var user = _auth.GetCurrentUser().User;
// using (var db = SqlSugarOper.GetInstance(_configuration))
// {
// var flag = db.Updateable<Sugar_Drone_caseinfo>()
// .SetColumns(c => new Sugar_Drone_caseinfo
// {
// is_intact = 99,
// close_comments = submitInfo.Reason,
// close_time = DateTime.Now,
// is_closed = 1
// })
// .Where(c => c.case_no == submitInfo.CaseNo)
// .ExecuteCommand();
// if (flag > 0)
// {
// return true;
// }
// else
// {
// return false;
// }
// }
//}
// #endregion
}
}