using Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenAuth.App.FormModule; using OpenAuth.App.Request; using OpenAuth.App.ServiceApp; using OpenAuth.App.ServiceApp.DroneCaseInfo; using OpenAuth.App.ServiceApp.DroneCaseInfo.Request; using OpenAuth.App.ServiceApp.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.WebApi.Controllers.ServiceControllers { [Route("api/[controller]/[action]")] [ApiController] class DroneCaseInfoSTHXController : ControllerBase { readonly DroneCaseInfoSTHXApp _app; readonly ToNonGrainWorkMethod1 _toNonGrainWorkMethod; public DroneCaseInfoSTHXController(DroneCaseInfoSTHXApp app, ToNonGrainWorkMethod1 toNonGrainWorkMethod) { _app = app; _toNonGrainWorkMethod = toNonGrainWorkMethod; } #region 接收办理 /// /// 接收办理/图斑调整 /// /// /// [HttpGet] public async Task>>> LoadTasklList([FromQuery] TaskListReq req) { return await _app.LoadTaskList(req); } /// /// 添加收藏 /// /// /// [HttpPost] public async Task> AddtaskFavorite([FromBody] DroneTaskFavorite model) { Response response = new Response(); try { response = await _app.AddTaskFavorite(model); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } /// /// 删除收藏 /// /// /// [HttpPost] public async Task> DeleteTaskCase([FromBody] string id) { Response response = new Response(); try { response = await _app.DeleteTaskFavoriteCase(id); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } #endregion #region 填报审核 /// /// 查询待办任务统计数据(审核监督第一层接口) 审核监督/填报审核(illegal 1)/整改审核 /// /// 年份 /// 图斑来源 /// 批次号 /// /// [HttpGet] public async Task>> LoadTaskCount(int year, string tubanlaiyuan, string picihao, int illegal) { return await _app.LoadTaskCount(year, tubanlaiyuan, picihao, illegal); } /// /// 查询任务列表数据(原审核监督第二层接口) 审核监督-填报审核 /// /// 区域id /// 等级 /// 年 /// 标注类型 /// 图斑号 /// [HttpGet] public async Task>>> LoadTaskDetailList([FromQuery] TaskDetailReq req) { return await _app.LoadTaskDetailList(req); } #endregion #region 图斑调整 /// /// 案件还原合并 /// /// /// [HttpPost] public async Task> CaseRecover([FromBody] CaseRecoverReq req) { Response response = new Response(); try { return await _app.CaseRecover(req); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } /// /// 案件分宗/图斑分割/图斑拆分/案件分割 /// /// /// [HttpPost] public async Task> CaseSplit([FromBody] CaseSplitReq req) { Response response = new Response(); try { return await _app.CaseSplit(req); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } /// /// 更新案件行政区划 /// /// /// [HttpPost] public Response UpdateDroneCaseInfo(DronCaseSingleCityUpdateReq req) { Response response = new Response(); try { _app.UpdateDroneCaseInfo(req); response.Result = "修改成功"; } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } /// /// 获取图片信息 /// /// /// [HttpGet] [AllowAnonymous] public async Task>> LoadCaseImgList(string caseid, string category) { return await _app.LoadCaseImgList(caseid, category); } [HttpGet] public async Task> GetCaseInfoById(string id) { var response = new Response(); try { return await _app.GetCaseInfoById(id); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } [HttpGet] public Response> loadStreet() { return _app.loadStreet(); } #endregion #region 判读详情 /// /// 案件详情 /// /// /// [HttpGet] public async Task> GetCaseInfo(string id) { Response response = new Response(); try { return await _app.GetCaseInfo(id); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } #endregion #region 案件关闭 /// /// 案件关闭--生态修复 /// /// 案件id /// [HttpPost] public async Task> CloseSTHXCaseInfo(CloseCaseInfoReq req) { Response response = new Response(); try { response = await _app.CloseSTHXCaseInfo(req.id, req.closereason); } catch (Exception ex) { response.Code = 500; response.Message = ex.InnerException?.Message ?? ex.Message; } return response; } #endregion /// /// 图斑列表 /// /// /// [HttpGet] public async Task>>> LoadCaseInfoTuBanList([FromQuery] CaseInfoTuBanReq req) { return await _app.LoadCaseInfoTuBanList(req); } [HttpGet] public async Task>> LoadCaseInfoTuBanListApp([FromQuery] CaseInfoTuBanReq req) { return await _app.LoadCaseInfoTuBanListApp(req); } /// /// 代办任务 /// /// /// [HttpGet] public async Task>> LoadMyUncompletedTask([FromQuery] TaskUncompletReq req) { return await _app.LoadMyUncompletedTask(req); } /// /// 导出案件shp文件 /// /// /// [HttpPost] public IActionResult ExportCaseInfoShapefile([FromQuery] CaseInfoTuBanReq req) { try { string shpFilePath = Path.Combine(Path.GetTempPath(), $"图斑信息{DateTime.Now:yyyyMMddHHmmss}.shp"); string shpFilePathzip = Path.Combine(Path.GetTempPath(), $"图斑信息{DateTime.Now:yyyyMMddHHmmss}.zip"); _app.ExportCaseInfoShapefile(req, shpFilePath, shpFilePathzip); byte[] fileBytes = System.IO.File.ReadAllBytes(shpFilePathzip); return File(fileBytes, "application/octet-stream", $"图斑信息{DateTime.Now:yyyyMMddHHmmss}.zip"); } catch (Exception ex) { return StatusCode(500, $"Internal server error: {ex.Message}"); } } [HttpPost] public IActionResult ExportCaseInfoTuBanList([FromQuery] CaseInfoTuBanReq req) { var res = new Response(); //获取列表数 Response> response = _app.ExprotLoadCaseInfoTuBanList(req); //获取模板数据 List headers = new List(); ModuleColumn m01 = new ModuleColumn(); m01.key = "xuhao"; m01.value = "序号"; headers.Add(m01); ModuleColumn m1 = new ModuleColumn(); m1.key = "tubanlaiyuan"; m1.value = "图斑来源"; headers.Add(m1); ModuleColumn m411 = new ModuleColumn(); m411.key = "picihao"; m411.value = "批次"; headers.Add(m411); ModuleColumn m2 = new ModuleColumn(); m2.key = "countyname"; m2.value = "县区名称"; headers.Add(m2); ModuleColumn m3 = new ModuleColumn(); m3.key = "streetname"; m3.value = "乡镇名称"; headers.Add(m3); ModuleColumn m31 = new ModuleColumn(); m31.key = "communityname"; m31.value = "社区/村名称"; headers.Add(m31); ModuleColumn m4 = new ModuleColumn(); m4.key = "caseNo"; m4.value = "图斑编号"; headers.Add(m4); ModuleColumn m41 = new ModuleColumn(); m41.key = "typename"; m41.value = "图斑类型"; headers.Add(m41); ModuleColumn m5 = new ModuleColumn(); m5.key = "identificationTime"; m5.value = "下发时间"; headers.Add(m5); ModuleColumn m6 = new ModuleColumn(); m6.key = "area"; m6.value = "图斑面积"; headers.Add(m6); ModuleColumn m711 = new ModuleColumn(); m711.key = "nongyongdiarea"; m711.value = "农用地面积"; headers.Add(m711); ModuleColumn m7 = new ModuleColumn(); m7.key = "gengdiArea"; m7.value = "耕地面积"; headers.Add(m7); ModuleColumn m71 = new ModuleColumn(); m71.key = "yongjiujibennongtianarea"; m71.value = "永农面积"; headers.Add(m71); ModuleColumn m72 = new ModuleColumn(); m72.key = "shengtaibaohuhongxian_area"; m72.value = "生态保护红线面积"; headers.Add(m72); ModuleColumn m8 = new ModuleColumn(); m8.key = "isillegal"; m8.value = "判定结果"; headers.Add(m8); ModuleColumn m9 = new ModuleColumn(); m9.key = "handleStatusName"; m9.value = "当前状态"; headers.Add(m9); ModuleColumn m111 = new ModuleColumn(); m111.key = "jieshou_people"; m111.value = "接收人"; headers.Add(m111); ModuleColumn m121 = new ModuleColumn(); m121.key = "jieshou_time"; m121.value = "接收时间"; headers.Add(m121); ModuleColumn m11 = new ModuleColumn(); m11.key = "xiangmumc"; m11.value = "项目名称"; headers.Add(m11); ModuleColumn m12 = new ModuleColumn(); m12.key = "xiangmuzhuti"; m12.value = "项目主体"; headers.Add(m12); ModuleColumn m13 = new ModuleColumn(); m13.key = "actualUseTo"; m13.value = "实际用途"; headers.Add(m13); ModuleColumn m221 = new ModuleColumn(); m221.key = "pandingyijushuoming"; m221.value = "判定依据说明"; headers.Add(m221); ModuleColumn m10 = new ModuleColumn(); m10.key = "measureName"; m10.value = "整改措施"; headers.Add(m10); ModuleColumn m131 = new ModuleColumn(); m131.key = "examiner_name"; m131.value = "填报人"; headers.Add(m131); ModuleColumn m141 = new ModuleColumn(); m141.key = "examine_time"; m141.value = "填报时间"; headers.Add(m141); ModuleColumn m152 = new ModuleColumn(); m152.key = "remark"; m152.value = "备注"; headers.Add(m152); ModuleColumn m23 = new ModuleColumn(); m23.key = "xjshenhejieguo"; m23.value = "县级审核结果"; headers.Add(m23); ModuleColumn m24 = new ModuleColumn(); m24.key = "xianjiyijian"; m24.value = "县级审核意见"; headers.Add(m24); ModuleColumn m25 = new ModuleColumn(); m25.key = "verifyuser"; m25.value = "县级审核人"; headers.Add(m25); ModuleColumn m26 = new ModuleColumn(); m26.key = "verifytime"; m26.value = "县级审核时间"; headers.Add(m26); ModuleColumn m27 = new ModuleColumn(); m27.key = "sjshenhejieguo"; m27.value = "市级审核结果"; headers.Add(m27); ModuleColumn m28 = new ModuleColumn(); m28.key = "shijiyijian"; m28.value = "市级审核意见"; headers.Add(m28); ModuleColumn m29 = new ModuleColumn(); m29.key = "hexiaoren"; m29.value = "市级审核人"; headers.Add(m29); ModuleColumn m30 = new ModuleColumn(); m30.key = "hexiaotime"; m30.value = "市级审核时间"; headers.Add(m30); ModuleColumn m301 = new ModuleColumn(); m301.key = "case_description"; m301.value = "图斑描述"; headers.Add(m301); var excelRes = _app.ListToExcelTuban(response.Result, headers); if (excelRes.Code == 200) { return File(excelRes.Result.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "数据导出" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"); } else { res.Code = excelRes.Code; res.Message = "导出失败"; } return Ok(res); } /// /// 案件信息列表 /// /// /// [HttpGet] public async Task>>> LoadCaseInfoCheckTuBanList([FromQuery] CaseInfoTypeName req) { return await _app.LoadCaseInfoCheckTuBanList(req); } } }