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 { IConfiguration _configuration; //private IOptions _options; private ILogger _logger; public DroneCaseinfoApp( ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, ILogger logger) : base(unitWork, repository, auth) { _logger = logger; } //处理状态 //List handleStatusList = new List() //{ // new QueryHandleStatusListReq(){ id = 0,name="未办理"}, // new QueryHandleStatusListReq(){ id = 1,name="办理中"}, // new QueryHandleStatusListReq(){ id = 2,name="已办结"}, //}; ///// ///// 构造函数 ///// ///// ///// ///// ///// //public DroneCaseinfoApp(ISugarUnitOfWork unitWork, IOptions options, IRepository repository, IAuth auth, IConfiguration configuration, ILogger logger) : base(unitWork, repository, auth) //{ // _configuration = configuration; // _options = options; // _auth = auth; // _logger = logger; //} //#region 案件 ///// ///// 无人机添加案件 ///// ///// ///// //public string AddDroneCaseByDrone(AddDroneCaseByDroneReq req) //{ // var user = _auth.GetCurrentUser().User; // Sugar_Drone_caseinfo model = req.MapTo(); // var picList = req.pic_list; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // model.Init(user, db); // List filesList = new List(); // //图片 // 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().Where(c => c.Id == model.countyid).First(); // if (countyname != null) // { // model.countyname = countyname.Name; // } // //镇 // model.streetid = lngLat["streetid"].ToString(); // var streetname = db.Queryable().Where(c => c.Id == model.streetid).First(); // if (streetname != null) // { // model.streetname = streetname.Name; // } // //乡社区 // model.communityid = lngLat["communityid"].ToString(); // var communityname = db.Queryable().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 BackhaulDroneCaseByDrone(BackhaulDroneCaseByDroneReq req) //{ // var user = new User { Id = req.userid, Name = req.username }; // Sugar_Drone_caseinfo model = req.MapTo(); // var picList = req.pic_list; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // model.Init(user, db); // //图片 // List filesList = new List(); // 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().Where(c => c.Id == model.countyid).FirstAsync(); // if (countyname != null) // { // model.countyname = countyname.Name; // } // //镇 // model.streetid = lngLat["streetid"].ToString(); // var streetname = await db.Queryable().Where(c => c.Id == model.streetid).FirstAsync(); // if (streetname != null) // { // model.streetname = streetname.Name; // } // //乡社区 // model.communityid = lngLat["communityid"].ToString(); // var communityname = await db.Queryable().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>> BackhaulUpload(List 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>(); // if (flurlRespone.StatusCode == 200) // { // var reslut = await flurlRespone.ResponseMessage.Content.ReadAsStringAsync(); // if (!string.IsNullOrEmpty(reslut)) // { // respone = JsonConvert.DeserializeObject>>(reslut); // } // } // else // { // respone.Code = flurlRespone.StatusCode; // respone.Result = null; // } // return respone; //} [HttpGet] public string Test(string txt) { return txt; } ///// ///// 上报案件 ///// ///// ///// //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().Where(c => c.Id == model.countyid).First(); // if (countyname != null) // { // model.countyname = countyname.Name; // } // //镇 // model.streetid = lngLat["streetid"].ToString(); // var streetname = db.Queryable().Where(c => c.Id == model.streetid).First(); // if (streetname != null) // { // model.streetname = streetname.Name; // } // //乡社区 // model.communityid = lngLat["communityid"].ToString(); // var communityname = db.Queryable().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 filesList = new List(); // //图片 // 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 relationList = new List(); // foreach (var item in caserelationList) // { // relationList.Add(new Sugar_Drone_caseinfo_relation // { // caseid = model.Id, // relation_case_no = item // }); // } // //案件标签 // var tags = req.tags; // List tagList = new List(); // 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("上报失败"); // } //} ///// ///// 修改完善案件 ///// ///// ///// //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().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().Where(c => c.relid == req.info.Id).ToList(); // List filesList = new List(); // //图片 // 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 relationList = new List(); // foreach (var item in caserelationList) // { // relationList.Add(new Sugar_Drone_caseinfo_relation // { // caseid = model.Id, // relation_case_no = item // }); // } // //案件标签 // var tags = req.tags; // List tagList = new List(); // foreach (var item in tags) // { // tagList.Add(new Sugar_Drone_caseinfo_tag // { // caseid = model.Id, // tagid = item // }); // } // //专题及平台数据处理 // var dataBaseList = db.Queryable().Where(c => req.databaseid.Contains(c.Id)).IgnoreColumns(c => new { c.org_id }).ToList(); // List subjectList = new List(); // //遍历库 // for (int i = 0; i < dataBaseList.Count; i++) // { // //当前库 // var _item = dataBaseList[i]; // //专题信息 // var subjectlist = db.Queryable().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().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().Where(a => a.caseid == model.Id).ExecuteCommand(); // db.Insertable(relationList).ExecuteCommand(); // //案件标签 // db.Deleteable().Where(a => a.caseid == model.Id).ExecuteCommand(); // db.Insertable(tagList).ExecuteCommand(); // //案件平台专题 // db.Deleteable().Where(a => a.CaseId == model.Id).ExecuteCommand(); // db.Insertable(subjectList).ExecuteCommand(); // }); // if (transFlag.IsSuccess) // return model.Id; // else // throw new Exception("上报失败"); // } //} ///// ///// 事件判读 ///// ///// ///// //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().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().Where(c => c.relid == req.info.Id).ToList(); // List filesList = new List(); // //图片 // 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 relevanceList = new List(); // 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 relationList = new List(); // foreach (var item in caserelationList) // { // relationList.Add(new Sugar_Drone_caseinfo_relation // { // caseid = model.Id, // relation_case_no = item // }); // } // //案件标签 // var tags = req.tags; // List tagList = new List(); // foreach (var item in tags) // { // tagList.Add(new Sugar_Drone_caseinfo_tag // { // caseid = model.Id, // tagid = item // }); // } // #region 专题及平台数据处理 // //专题及平台数据处理 // var dataBaseList = db.Queryable().Where(c => req.databaseid.Contains(c.Id)).IgnoreColumns(c => new { c.org_id }).ToList(); // List subjectList = new List(); // //遍历库 // for (int i = 0; i < dataBaseList.Count; i++) // { // //当前库 // var _item = dataBaseList[i]; // //专题信息 // var subjectlist = db.Queryable().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().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().Where(c => c.SecondId == model.Id && c.Key == Define.DATABASE_CASE).ExecuteCommand(); // //关联表 // db.Insertable(relevanceList).ExecuteCommand(); // //案件关联 // db.Deleteable().Where(a => a.caseid == model.Id).ExecuteCommand(); // db.Insertable(relationList).ExecuteCommand(); // //案件标签 // db.Deleteable().Where(a => a.caseid == model.Id).ExecuteCommand(); // db.Insertable(tagList).ExecuteCommand(); // //案件平台专题 // db.Deleteable().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); // } // } // } //} ///// ///// 事件审核 ///// ///// ///// //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().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().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().Where(c => c.relid == req.info.Id).ToList(); // List filesList = new List(); // //图片 // 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 relevanceList = new List(); // 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 relationList = new List(); // foreach (var item in caserelationList) // { // relationList.Add(new Sugar_Drone_caseinfo_relation // { // caseid = model.Id, // relation_case_no = item // }); // } // //案件标签 // var tags = req.tags; // List tagList = new List(); // 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().Where(a => a.relid == model.Id).ExecuteCommand(); // db.Insertable(filesList).ExecuteCommand(); // } // //删除关联关系再新增 // db.Deleteable().Where(c => c.SecondId == model.Id && c.Key == Define.DATABASE_CASE).ExecuteCommand(); // //关联表 // db.Insertable(relevanceList).ExecuteCommand(); // //案件关联 // db.Deleteable().Where(a => a.caseid == model.Id).ExecuteCommand(); // db.Insertable(relationList).ExecuteCommand(); // //案件标签 // db.Deleteable().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("案件不存在"); // } // } //} ///// ///// 事件审核(改变传参) ///// ///// 案件信息id ///// 是否通过(true,false) ///// 审核意见 ///// 需要下发到哪些项目id ///// ///// //public string UpdateDroneCaseInfoExamines(ExamineReq req) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // //案件实体 // var model = db.Queryable().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("案件不存在"); // } // } //} ///// ///// 同步数据公共方法 ///// ///// ///// ///// ///// //private string AsynchDroneCaseData(SqlSugarClient db, string[] dataBaseIds, string caseId, List subjects) //{ // //查询同步数据 // var dataBaseList = db.Queryable().Where(c => dataBaseIds.Contains(c.Id)).IgnoreColumns(c => new { c.org_id }).ToList(); // //查询案件详情 // var model = db.Queryable().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(sql.ToString()).ToList(); // //图片文件数据 // var files = db.Queryable().Where(c => c.relid == caseId).ToList(); // var fileList = files.Select(c => c.path).ToList(); // //本地图片服务器的地址 // string pictureFilesApi = _configuration.GetSection("PictureFilesApi").Value; // //关联案件 // var relationList = db.Queryable().Where(a => a.caseid == caseId).ToList(); // //案件标签 // var tagList = db.Queryable().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().Where(r => subjects.Contains(r.Key) && r.PId == _item.Id).ToList(); // var subjectnames = ""; // if (subjects.Count > 0 && subjectlist.Count > 0) // { // subjectnames = db.Queryable().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>(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>(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 GetSubjectInfos() //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var list = db.Queryable().Select(r => new SubjectRes // { // Id = r.Id, // Name = r.database_name, // Children = SqlFunc.Subqueryable().Where(a => a.PId == r.Id).ToList(a => new ChildSubject // { // Key = a.Key, // Name = a.Name // }) // }).ToList(); // return list; // } //} ///// ///// 同步航飞库数据 ///// ///// ///// ///// //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().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().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().Where(c => c.relid == model.Id).ExecuteCommand(); // db.Insertable(files).ExecuteCommand(); // //关联案件 // //先删除后新增 // db.Deleteable().Where(c => c.caseid == model.Id).ExecuteCommand(); // db.Insertable(relations).ExecuteCommand(); // //案件标签 // //先删除后新增 // db.Deleteable().Where(a => a.caseid == model.Id).ExecuteCommand(); // db.Insertable(tags).ExecuteCommand(); // } // }); // if (transFlag.IsSuccess) // return "同步成功"; // else // throw new Exception("同步失败"); // } //} ///// ///// 关闭案件(判读用) ///// ///// ///// //public string CloseDroneCaseInfo(string id) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable() // .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("关闭失败"); // } //} ///// ///// 关闭案件(审核用) ///// ///// ///// ///// //public string CloseDroneCaseInfos(string id, string close_comments) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var info = db.Queryable().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() // .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("案件不存在"); // } // } //} ///// ///// 审核通过 ///// ///// ///// //public string VerifyCaseInfoSuccess(string id) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable() // .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 "审核失败"; // } //} ///// ///// 审核改进 ///// ///// ///// //public string VerifyCaseInfoFailed(AddOrUpdateVerifyCaseSuccessReq req) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var caseInfo = db.Queryable().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().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 ""; //} ///// ///// 上报事件 ///// ///// ///// //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 filesList = new List(); // //图片 // 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("上报失败"); // } //} ///// ///// 上报案件-分配给自己临时接口 ///// ///// ///// //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 filesList = new List(); // //图片 // 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("上报失败"); // } //} ///// ///// 分配案件 ///// ///// ///// //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().Where(c => caseidList.Contains(c.Id)).ToList(); // //用户列表 // var userList = db.Queryable().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 "分配失败"; // } // } //} ///// ///// 查询案件列表 ///// ///// ///// //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().Where(c => c.DtCode == "DRONE_CASE_STATUS_OVERDUE").First(); // //if (statusModel != null) // //{ // // var flag = db.Updateable() // // .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 { 1, 99, 6 }; // var list = db.Queryable().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().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().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().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().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; // } //} ///// ///// 查询已审核案件列表 ///// ///// ///// //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 { 1, 99 }; // var list = db.Queryable().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().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().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().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().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; // } //} ///// ///// 加载处理数据列表 ///// ///// ///// //public TableData LoadDealCaseInfoList(QueryDealCaseInfoListReq obj) //{ // obj.Init(); // var req = obj.MapTo(); // req.is_intact = 1; // req.is_dealer = 1; // //查询列表数据 // var tbData = LoadCaseInfoList(req); // var list = (List)tbData.data; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var caseIdList = list.Select(c => c.Id).ToList(); // var picList = db.Queryable().Where(c => caseIdList.Contains(c.relid) && c.type == 0 && c.tablename == "drone_caseinfo").Select(c => new { caseid = c.relid, c.path }).ToList(); // List result = new List(); // for (int i = 0; i < list.Count; i++) // { // var item = list[i]; // var caseModel = item.MapTo(); // 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; // } //} ///// ///// 导出无人机执法案件 ///// ///// ///// //public string ExportCaseInfoList([FromQuery] QueryDealCaseInfoListReq obj) //{ // obj.Init(); // var req = obj.MapTo(); // 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(listStr); // List columnsname = new List() // { // "Id", // "case_no", // "typename", // "countyname", // "streetname", // "communityname", // "lng", // "lat", // "case_description", // "createusername", // "createtime", // }; // List columns = new List() // { // "案件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"; //} ///// ///// 案件详情 ///// ///// ///// //public AddOrUpdateDroneCaseInfoDataBaseReqExt GetCaseInfo(string id) //{ // AddOrUpdateDroneCaseInfoDataBaseReqExt res = new AddOrUpdateDroneCaseInfoDataBaseReqExt(); // res.Init(); // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // //详情 // var info = db.Queryable().Where(c => c.Id == id).First(); // //文件 // var fileList = db.Queryable().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().Where(a => a.caseid == id).Select(a => a.relation_case_no).ToList(); // //案件标签 // //var tags = db.Queryable() // // .LeftJoin((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() // .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((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().Where(r => r.CaseId == id)?.Select(r => r.DataBaseId).Distinct().ToList(); // var subjectkeys = db.Queryable().Where(r => r.CaseId == id)?.Select(r => r.SubjectKeys).ToList(); // List keys = new List(); // 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; // } //} ///// ///// 查询案件 ///// ///// //public object LoadCaseInfoData() //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var list = db.Queryable() // //是否完整性、是否关闭、是否删除过滤 // .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().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().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; // } //} ///// ///// 删除案件 ///// ///// ///// //public string DeleteDroneCaseInfo(string[] ids) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable() // .SetColumns(c => new Sugar_Drone_caseinfo { is_delete = 1 }) // .Where(c => ids.Contains(c.Id)) // .ExecuteCommand(); // if (flag > 0) // return "删除成功"; // else // throw new Exception("删除失败"); // } //} ///// ///// 删除文件 ///// ///// ///// //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() // .SetColumns(c => new Sugar_Drone_files { is_delete = 1 }) // .Where(c => ids.Contains(c.Id)) // .ExecuteCommand(); // if (flag >= 0) // return "删除成功"; // else // throw new Exception("删除失败"); // } //} ///// ///// 删除文件 - 通过路径删除 ///// ///// ///// //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() // .SetColumns(c => new Sugar_Drone_files { is_delete = 1 }) // .Where(c => paths.Contains(c.path)) // .ExecuteCommand(); // if (flag >= 0) // return "删除成功"; // else // throw new Exception("删除失败"); // } //} ///// ///// 案件数量统计 ///// ///// //public JObject CaseCountCensus() //{ // //统计相关接口 // //尽量减少查询数据库数据 // //查询数据返回值尽量少 // //数据类型统计使用GroupBy统计count,再进行类型过滤 // //当前用户 // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // //查询当前用户分配的任务 // var list = db.Queryable() // //是否完整性、是否删除过滤 // .Where(c => c.is_intact == 1 && (c.is_delete == 0 || c.is_delete == null)) // //执行人过滤 // .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().Where(it => it.SecondId == c.streetid && it.FirstId == user.Id && it.Key == Define.USERORG).Any() // || SqlFunc.Subqueryable().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; // } //} ///// ///// 案件导出 ///// ///// ///// //public string DroneCaseInfoExport(string id) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var model = GetCaseInfo(id); // var info = model.info; // Dictionary dic = new Dictionary(); // 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().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 通知 ///// ///// 查询所有通信信息 ///// ///// //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(); // if (user.Account == Define.SYSTEM_USERNAME) // { // //超级管理员 看到全部通知 // listPage = db.Queryable().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().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().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().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; // } //} ///// ///// 查询通知信息详情 ///// ///// 通知信息id ///// //public Sugar_Drone_message LoadMessage(string id) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // return db.Queryable().Where(c => c.Id == id).First(); // } //} ///// ///// 根据权限查看通知详情 ///// ///// ///// //public Sugar_Drone_message LoadMessageUser(string id) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var model = db.Queryable((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().Where(c => c.Id == id).First(); // } //} ///// ///// 添加通知消息 ///// ///// ///// //public string AddMessage(QueryDroneCaseRecipientUserReq req) //{ // var _user = _auth.GetCurrentUser().User; // var model = req.MapTo(); // model.Init(_user); // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // //关联表数据 // List relevanceList = new List(); // //过滤条件:三表联合过滤 // //Sugar_Relevance 用到角色过滤 // //Sugar_Org 用到组织机构编码过滤 // //不使用SqlFunc.SubQeury过滤是因为组织机构向级联查询Id过多,会导致Sql长度过大引起查询失效 // Expressionable exp = new Expressionable(); // 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().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((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("添加失败"); // } // } //} ///// ///// 根据部门角色关联进行添加 ///// ///// ///// //public string AddMessRoleOrg(QueryDroneCaseRecipientOrgRoleReq req) //{ // var _user = _auth.GetCurrentUser().User; // var model = req.MapTo(); // model.Init(_user); // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // //关联表数据 // List relevanceList = new List(); // //角色列表 // var roleList = db.Queryable().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().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("添加失败"); // } // } //} ///// ///// 编辑通知消息 ///// ///// ///// //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("编辑失败"); // } // } //} ///// ///// 更新删除通知消息 ///// ///// ///// //public string UpdateDelMessage(string id) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable().SetColumns(c => new Sugar_Drone_message // { // is_delete = 1 // }).Where(c => id == c.Id).ExecuteCommand(); // if (flag > 0) // { // return "删除成功"; // } // else // { // throw new Exception("删除失败"); // } // } //} ///// ///// 设置通知已读 ///// ///// ///// //public string SetMessageRead(string messageid) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var model = db.Queryable() // .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() // .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 案件处理 ///// ///// 案件处理 ///// ///// ///// //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 filesList = new List(); // //图片 // 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() // .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("处理失败"); // } //} ///// ///// 更新案件处理数据 ///// ///// ///// //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().Where(c => c.relid == req.info.Id).ToList(); // List filesList = new List(); // //图片 // 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() // .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("处理失败"); // } //} ///// ///// 处理查询 ///// ///// ///// //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((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; // } //} ///// ///// 获取处理详情 ///// ///// ///// ///// //public AddOrUpdateDroneCaseDealReq GetDroneCaseDeal(string id, string caseid) //{ // AddOrUpdateDroneCaseDealReq res = new AddOrUpdateDroneCaseDealReq(); // res.Init(); // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // //详情 // var info = db.Queryable() // .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().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() // .Where(c => c.Id == info.caseid) // .First(); // res.handle_status_id = caseModel.handle_status_id.Value; // res.is_illegal = caseModel.is_illegal; // return res; // } //} ///// ///// 删除处理 ///// ///// ///// //public string DeleteDroneCaseDeal(string[] ids) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable() // .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 图层 ///// ///// 添加违建图层 ///// ///// ///// //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("新增失败"); // } // } //} ///// ///// 编辑违法建筑和图层 ///// ///// ///// //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("编辑失败!"); // } // } //} ///// ///// 删除图斑 ///// ///// ///// //public string DeleteDroneLayers(int gid) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Deleteable().Where(c => c.gid == gid).ExecuteCommand(); // if (flag > 0) // return "删除成功"; // else // throw new Exception("删除失败"); // } //} ///// ///// 违建图层详情 ///// ///// ///// //public Sugar_Drone_shp_data LoadIllegalBuildeLayerData(int gid) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var list = db.Queryable().Where(c => c.gid == gid).IgnoreColumns(c => new { c.geom }).First(); // return list; // } //} ///// ///// 查询主页违法图层数据 ///// 获取所有图斑,主页用 ///// ///// ///// //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; //} ///// ///// 获取GeoJson ///// PC获取图层的GeoJson(判读页面用) ///// ///// ///// //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; //} ///// ///// app获取GeoJson ///// 替代app获取中心点和图层坐标点集合 ///// ///// ///// //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((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("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; // } //} ///// ///// 获取所有案件中心点 ///// APP获取中心点和图层的坐标点集合 ///// ///// //public JToken GetAllDroneCaseCenterApp(string id) //{ // var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var query = db.Queryable((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("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; // } //} ///// ///// 获取GeoServer地址 ///// ///// //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("未查询到数据"); //} ///// ///// 根据经纬度获取组织机构 ///// ///// ///// ///// //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(sql.ToString()).ToList(); // if (countyList.Count > 0) // { // //县名称 // string countyName = countyList[0].xzqmc; // //根据名称查询组织机构 // var countyModel = db.Queryable().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(sql.ToString()).ToList(); // if (streetList.Count > 0) // { // //镇名称 // string streetName = streetList[0].xzqmc; // //根据名称查询组织机构 // var streetModel = db.Queryable().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(sql.ToString()).ToList(); // if (communityidList.Count > 0) // { // //村名称 // string communityName = communityidList[0].zldwmc; // //根据村名称和镇id查询组织机构 // var communityModel = db.Queryable().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 无人机轨迹 ///// ///// 批量添加坐标点 ///// ///// ///// //public string AddDronePoints(List req) //{ // var user = _auth.GetCurrentUser().User; // List list = new List(); // 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 用户 ///// ///// 获取当前用户的信息 ///// ///// //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 统计 ///// ///// 按分类统计 ///// ///// ///// ///// ///// //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() // //状态未删除 // .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().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(); // } //} ///// ///// 按组织机构统计案件数量 ///// ///// //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().Where(c => SqlFunc.EndsWith(c.Name, "县")).Select(c => c.Id).ToArray(); // streetids = db.Queryable().Where(c => countyids.Contains(c.ParentId)).Select(c => c.Id).ToArray(); // //communityid = db.Queryable().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; // } //} ///// ///// 获取按组织机构统计案件数量 ///// ///// ///// ///// ///// ///// //private object GetDroneCaseOrgCensus(string type, string orgid, User user, SqlSugarClient db) //{ // //查询当前用户分配的任务 // var list = db.Queryable() // //是否完整性、是否删除过滤 // .Where(c => c.is_intact == 1 && (c.is_delete == 0 || c.is_delete == null)) // //执行人过滤 // .WhereIF(user.Account != Define.SYSTEM_USERNAME, c => SqlFunc.Subqueryable().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(); // JArray array = new JArray(); // //查询组织机构的下级机构:orgid有可能是县级id,也有可能是镇级id // censusOrgs = db.Queryable().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().Where(it => it.SecondId == c.communityid && it.FirstId == user.Id && it.Key == "UserOrg").Any() || c.createuser == user.Id) // */ //#region 大屏展示 ///// ///// 正式案件记录 ///// ///// //public List LoadDroneCase(int? is_intact) //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var list = db.Queryable() // .WhereIF(is_intact != null, c => c.is_intact == is_intact) // .OrderBy(c => c.createtime, OrderByType.Desc).Take(20).ToList(); // return list; // } //} ///// ///// 最新案件处理 ///// ///// //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((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; // } //} ///// ///// 上报和处理案件数量 ///// ///// //public JObject GetTodayReportAndDealCount() //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); // var reportCount = db.Queryable().Where(c => c.createtime > today).Count(); // var dealCount = db.Queryable().Where(c => c.createtime > today).Count(); // JObject obj = new JObject(); // obj.Add("reportCount", reportCount); // obj.Add("dealCount", dealCount); // return obj; // } //} ///// ///// 案件数量统计 ///// ///// //public JObject GetDroneCaseCount() //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var notIntactCount = db.Queryable().Where(c => c.is_intact == 0).Count(); // var intactCount = db.Queryable().Where(c => c.is_intact == 1).Count(); // JObject obj = new JObject(); // obj.Add("notIntactCount", notIntactCount); // obj.Add("intactCount", intactCount); // return obj; // } //} ///// ///// 违建分类统计 ///// ///// //public object GetDroneTypeCount() //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var list = db.Queryable().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; // } //} ///// ///// 按乡镇统计 ///// ///// //public JArray GetDroneOrgCount() //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var countyid = db.Queryable().Where(c => c.Name == "费县").Select(c => c.Id).First(); // var streetList = db.Queryable().Where(c => c.ParentId == countyid).OrderBy(c => c.SortNo, OrderByType.Asc).OrderBy(c => c.CreateTime, OrderByType.Asc).ToList(); // //案件上报数量 // var caseList = db.Queryable().GroupBy(c => new { c.streetid }) // .Select(c => new // { // c.streetid, // count = SqlFunc.AggregateCount(c.Id), // }).ToList(); // //案件处理数量 // //var dealList = db.Queryable((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().Where(c => c.streetid == _item.Id && c.createtime > today).Count(); // //历史案件数 // var historyCount = db.Queryable().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; // } //} ///// ///// 数据统计,按天统计图表 ///// ///// //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().Where(c => c.createtime > begin).Select(c => new { c.Id, c.createtime }).ToList(); // var dealList = db.Queryable().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; // } //} ///// ///// 查询GeoJson ///// ///// //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; //} ///// ///// 获取无人机的位置 ///// ///// //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(sql.ToString()).ToList(); // return list; // } //} ///// ///// 获取无人机的历史轨迹 ///// ///// //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(sql.ToString()).ToList(); // return list; // } //} ///// ///// 无人机飞行 假数据 ///// ///// //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(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(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; // } //} ///// ///// 获取无人机的在线率 ///// ///// //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(sql.ToString()).Count(); // //无人机的总数量 // var totalCount = db.SqlQueryable("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; // } //} ///// ///// 统计图表已完成未完成数量 ///// ///// //public JObject GetDroneCaseCompleteCount() //{ // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // JObject obj = new JObject(); // var query = db.Queryable(); // //线索总数 // 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 复提更新 ///// ///// 复提案件 ///// ///// ///// //public bool ReSubmitCaseInfo(ReSubmitInfo submitInfo) //{ // //var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable() // .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 案件关闭 ///// ///// 案件关闭 ///// ///// ///// //public bool CloseCaseInfo(CloseCaseInfo submitInfo) //{ // //var user = _auth.GetCurrentUser().User; // using (var db = SqlSugarOper.GetInstance(_configuration)) // { // var flag = db.Updateable() // .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 } }