using Infrastructure; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using OpenAuth.App; using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; using System.Text; namespace OpenAuth.WebApi.Controllers { /// /// 流程模版基本信息 /// [Route("api/[controller]/[action]")] [ApiController] public class WFSchemeInfoController : ControllerBase { WFSchemeInfoApp schemeInfoApp; public WFSchemeInfoController(WFSchemeInfoApp schemeInfoApp) { this.schemeInfoApp = schemeInfoApp; } #region 查询 #region 实例 /// /// 获取流程模板数据 /// /// 流程编码 /// [HttpGet] public async Task> Get(string code) { var dto = new Response { Result = new WFSchemeDto(), Message = "success" }; dto.Result.Schemeinfo = await schemeInfoApp.GetInfoEntityByCode(code); if (dto.Result.Schemeinfo == null) { return dto; } dto.Result.Scheme = await schemeInfoApp.GetSchemeEntity(dto.Result.Schemeinfo.SchemeId); dto.Result.SchemeAuthList = await schemeInfoApp.GetAuthList(dto.Result.Schemeinfo.Id); return dto; } #endregion #region 模版分页数据 /// /// 获取分页数据 /// /// 分页参数 /// 分类 /// 主键数据 /// [HttpGet] public async Task>>> LoadPage([FromQuery] PageReq pageReq, string category, string ids) { var pageInfo = await schemeInfoApp.LoadPage(pageReq, category, ids); return new Response>> { Result = pageInfo, Message = "success" }; } #endregion #region 可用模版集合 /// /// 可用模版集合 /// /// [HttpGet] public async Task>> Load() { var data = await schemeInfoApp.Load(); return new Response> { Result = data, Message = "success" }; } #endregion #region 获取自定义流程列表(后续可能权限用) /// /// 获取自定义流程列表 /// /// [HttpGet] public async Task>> GetInfoList() { var data = await schemeInfoApp.GetInfoList(); return new Response> { Result = data, Message = "success" }; } #endregion #endregion #region 新增 /// /// 新增流程模板 /// /// 提交参数 /// [HttpPost] public async Task> Add(WFSchemeDto nWFSchemeDto) { var result = new Response(); try { // 验证流程编码是否重复 var schemeInfoEntityTmp = await schemeInfoApp.GetInfoEntityByCode(nWFSchemeDto.Schemeinfo.Code); if (schemeInfoEntityTmp != null) { throw new Exception("流程编码重复"); } result = await schemeInfoApp.SaveEntity(string.Empty, nWFSchemeDto.Schemeinfo, nWFSchemeDto.Scheme, nWFSchemeDto.SchemeAuthList); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 修改 /// /// 更新流程模板 /// /// 流程主键 /// 提交参数 /// [HttpPost] public async Task> Update(string id, WFSchemeDto nWFSchemeDto) { var result = new Response(); try { // 验证流程编码是否重复 var schemeInfoEntityTmp = await schemeInfoApp.GetInfoEntityByCode(nWFSchemeDto.Schemeinfo.Code); if (schemeInfoEntityTmp != null && schemeInfoEntityTmp.Id != id) { throw new Exception("流程编码重复"); } result = await schemeInfoApp.SaveEntity(id, nWFSchemeDto.Schemeinfo, nWFSchemeDto.Scheme, nWFSchemeDto.SchemeAuthList); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 删除 /// /// 删除模板数据 /// /// 主键 /// [HttpPost] public async Task> Delete(string id) { var result = new Response(); try { result = await schemeInfoApp.DeleteEntity(id); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 更新流程模板版本 /// /// 更新流程模板版本 /// /// 流程模板主键 /// 历史记录主键 /// [HttpPost] public async Task> UpdateScheme(string id, string schemeId) { var result = new Response(); try { result = await schemeInfoApp.UpdateScheme(id, schemeId); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 启用/停用流程 /// /// 启用/停用流程 /// /// 主键 /// 状态1启用0禁用 /// [HttpPost] public async Task> UpdateState(string id, int state) { var result = new Response(); try { result = await schemeInfoApp.UpdateState(id, state); } catch (Exception ex) { result.Code = 500; result.Message = ex.InnerException?.Message ?? ex.Message; } return result; } #endregion #region 导入导出【暂时不做】 /// /// 导出流程模板数据 /// /// 流程编码 /// //[HttpGet("workflow/scheme/download/{code}")] //[AllowAnonymous] //[ProducesResponseType(typeof(FileContentResult), 200)] //public async Task ExportScheme(string code) //{ // WFSchemeInfoEntity schemeInfoEntity = await _nWFSchemeIBLL.GetInfoEntityByCode(code); // if (schemeInfoEntity != null) // { // WFSchemeEntity schemeEntity = await _nWFSchemeIBLL.GetSchemeEntity(schemeInfoEntity.F_SchemeId); // var nWFSchemeAuthList = await _nWFSchemeIBLL.GetAuthList(schemeInfoEntity.F_Id); // var jsonData = new // { // info = schemeInfoEntity, // scheme = schemeEntity, // authList = nWFSchemeAuthList // }; // string data = jsonData.ToJson(); // byte[] arr = Encoding.UTF8.GetBytes(data); // return File(arr, "application/octet-stream", schemeInfoEntity.F_Name + ".lrwf"); // } // else // { // return File(Encoding.UTF8.GetBytes("{}"), "application/octet-stream", schemeInfoEntity.F_Name + ".lrwf"); // } //} /// /// 导入流程模板(暂定) /// /// 文件主键 /// 分片数 /// 文件扩展名 /// //[HttpPost("workflow/scheme/upload")] //[AllowAnonymous] //[ProducesResponseType(typeof(ResponseDto), 200)] //public async Task ExecuteImportScheme(string fileId, int chunks, string ext) //{ // string path = _annexesFileIBLL.SaveAnnexes(fileId, fileId + "." + ext, chunks); // if (!string.IsNullOrEmpty(path)) // { // // 读取导入文件 // string data = System.IO.File.ReadAllText(path); // // 删除临时文件 // System.IO.File.Delete(path); // if (!string.IsNullOrEmpty(data)) // { // WFSchemeDto nWFSchemeModel = data.ToObject(); // // 验证流程编码是否重复 // WFSchemeInfoEntity schemeInfoEntityTmp = await _nWFSchemeIBLL.GetInfoEntityByCode(nWFSchemeModel.Schemeinfo.F_Code); // if (schemeInfoEntityTmp != null) // { // nWFSchemeModel.Schemeinfo.F_Code = Guid.NewGuid().ToString(); // } // await _nWFSchemeIBLL.SaveEntity("", nWFSchemeModel.Schemeinfo, nWFSchemeModel.Scheme, nWFSchemeModel.SchemeAuthList); // } // return SuccessInfo("导入成功"); // } // else // { // return Fail("导入模板失败!"); // } //} #endregion #region 注释掉内容 /// /// 获取流程模板数据 /// /// 流程编码 /// //[HttpGet("workflow/scheme/{code}")] //public async Task> GetFormData(string code) //{ // var dto = new Response // { // Result = new WFSchemeDto(), // Message = "success" // }; // dto.Result.Schemeinfo = await schemeInfoApp.GetInfoEntityByCode(code); // if (dto.Result.Schemeinfo == null) // { // return dto; // } // dto.Result.Scheme = await schemeInfoApp.GetSchemeEntity(dto.Result.Schemeinfo.SchemeId); // dto.Result.SchemeAuthList = await schemeInfoApp.GetAuthList(dto.Result.Schemeinfo.Id); // return dto; //} /// /// 获取模板分页数据 /// /// 分页参数 /// 流程模板信息主键 /// //[HttpGet("workflow/scheme/history/page/{id}")] //public async Task>>> GetSchemePageList(string id, [FromQuery] PageReq pageReq) //{ // var pageInfo = await schemeInfoApp.GetSchemePageList(pageReq, id); // return new Response>> // { // Result = pageInfo, // Message = "success" // }; //} /// /// 获取模板分页数据 /// /// 分页参数 /// 流程模板信息主键 /// //[HttpGet("workflow/scheme/historys/{id}")] //public async Task>> GetSchemeList(string id) //{ // var data = await schemeInfoApp.GetSchemeList(id); // return new Response> // { // Result = data, // Message = "success" // }; //} /// /// 获取流程模板数据 /// /// 模板主键 /// //[HttpGet("workflow/scheme/history/{id}")] //public async Task> GetScheme(string id) //{ // var data = await schemeInfoApp.GetScheme(id); // return new Response // { // Result = data, // Message = "success" // }; //} #endregion } }