using OpenAuth.App.BaseApp.Base; using OpenAuth.Repository.Domain; using OpenAuth.Repository; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OpenAuth.App.BaseApp.Shape; using OpenAuth.App.Interface; using SqlSugar; using Microsoft.Extensions.Configuration; using Infrastructure; using OpenAuth.App.Request; using OpenAuth.App.ServiceApp.DroneCaseInfoDev.Request; using Infrastructure.Extensions; using Infrastructure.Helpers; using Infrastructure.Utilities; using System.DirectoryServices; using DocumentFormat.OpenXml.Wordprocessing; using OpenAuth.App.Response; namespace OpenAuth.App.ServiceApp.DroneCaseInfoDev { public class DroneCaseInfoDevApp : SqlSugarBaseApp { private ISqlSugarClient client; public DroneCaseInfoDevApp(ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, ISqlSugarClient sqlSugarClient) : base(unitWork, repository, auth) { this.client = sqlSugarClient; } /// /// 获取案件列表信息 /// /// /// public async Task>>> LoadCaseInfoPageList(CaseInfoDev request) { RefAsync totalNumber = 0; var table = await base.Repository.AsQueryable() .WhereIF(!string.IsNullOrEmpty(request.tubanlaiyuan), r => r.tubanlaiyuan == request.tubanlaiyuan) .WhereIF(!string.IsNullOrEmpty(request.typename), r => r.typename == request.typename) .WhereIF(!string.IsNullOrEmpty(request.isBuildName), r => r.is_build_name == request.isBuildName) .WhereIF(request.isIllegal != null, r => r.is_illegal == request.isIllegal) .WhereIF(request.isIntact != null, r => r.is_intact == request.isIntact) .WhereIF(!string.IsNullOrEmpty(request.nowStatus), r => r.handle_status_name == request.nowStatus) .WhereIF(!string.IsNullOrEmpty(request.measureName), r => r.measure_name == request.measureName) .WhereIF(!string.IsNullOrEmpty(request.countyid), r => r.countyid == request.countyid) .WhereIF(!string.IsNullOrEmpty(request.streetid), r => r.streetid == request.streetid) .WhereIF(!string.IsNullOrEmpty(request.caseNo), r => r.case_no == request.caseNo) .WhereIF(!string.IsNullOrEmpty(request.originalcaseno), r => r.original_case_no == request.originalcaseno) .WhereIF(request.synchronoustime != null, r => r.synchronoustime > request.synchronoustime) .OrderByIF(request.synchronoustime != null, r => r.synchronoustime, OrderByType.Asc) .OrderByIF(request.synchronoustime == null, r => r.createtime, OrderByType.Desc).ToPageListAsync(request.page, request.limit, totalNumber); return new Response>>() { Result = new PageInfo> { Items = table, Total = totalNumber } }; } /// /// 添加模板信息 /// /// /// /// public Response AddSchemeDev(WFScheme req) { var info = client.Queryable().Where(r => r.Id == req.Id).ToList(); if (info.Count > 0) { throw new Exception("模板已存在"); } else { using (var uow = base.UnitWork.CreateContext()) { //添加模板版本信息 uow.WFScheme.Insert(req); WFSchemeInfo wsc = client.Queryable().Where(r => r.Id == req.SchemeInfoId).First(); if (wsc != null) { //更新模板信息 uow.WFSchemeInfo.Update(s => new WFSchemeInfo { SchemeId = req.Id }, s => s.Id == wsc.Id); //更新流程信息 uow.WFProcess.Update(r => new WFProcess { SchemeId = req.Id }, r => r.SchemeCode == wsc.Code); } var flag = uow.Commit(); return new Response { Result = flag, Message = flag == true ? "success" : "error" }; } } } /// /// 获取县区 /// /// /// public async Task> LoadChildren(long? parentId) { //List children = new List(); //if (parentId != null) //{ // children = await base.Repository.ChangeRepository>() // .AsQueryable().Where(r => r.ParentId == parentId).Select(r => new // { // Id = r.Id, // Name = r.Name, // }, true).ToListAsync(); //} List children = new List(); if (parentId != null) { children = await base.Repository.ChangeRepository>().AsQueryable() .Where(r => r.ParentId == parentId).OrderBy(r => r.SortNo).ToListAsync(); } return children; } public async Task LoadCaseInfoAbout(string caseId) { var model = new CaseInfoAbout(); model.CaseInfo = await client.Queryable().FirstAsync(a => a.Id == caseId); model.ProcessInfo = await client.Queryable().FirstAsync(a => a.Id == caseId); model.Tasks = await client.Queryable() .Where(a => a.ProcessId == caseId).ToListAsync(); model.TaskLogs = await client.Queryable() .Where(a => a.ProcessId == caseId).ToListAsync(); return model; } } }