using Ropin.Inspection.Model; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.ViewModel.DEV; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Repository { public class TdevDevStoreDocRepository : RepositoryBase, ITdevDevStoreDocRepository { public TdevDevStoreDocRepository(InspectionDbContext DbContext) : base(DbContext) { } /// /// 获取设备文档(包括关联的模板文档) /// /// /// public Task> GetDevFile(TdevDevStoreDocSearchModel searchModel) { MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Status", searchModel.C_Status), new MySqlConnector.MySqlParameter("name", "%"+searchModel.C_Name+"%"), new MySqlConnector.MySqlParameter("devStoreCode", searchModel.C_DevStoreCode), new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID) }; StringBuilder sql = new StringBuilder(); sql.Append(@"select * from ( select C_ID,C_Name,C_DevStoreCode,C_Type,C_Url,C_Remark,C_CreateBy,D_CreateOn,C_Status from TDEV_DevStoreDoc union select * from ( select C_ID,C_Name,@devStoreCode as C_DevStoreCode,C_Type,C_Url,C_Remark,C_CreateBy,D_CreateOn,C_Status from TDEV_DeviceTempArchives where C_DevTempCode in ( select C_DevTempCode as id from TDEV_DevStore where C_ID =@devStoreCode union select C_OpsTempCode as id from TDEV_DevStore where C_ID =@devStoreCode union select C_RepairTempCode as id from TDEV_DevStore where C_ID =@devStoreCode union select C_RunTempCode as id from TDEV_DevStore where C_ID =@devStoreCode )) tab)tabs where C_DevStoreCode=@devStoreCode"); if (!string.IsNullOrEmpty(searchModel.C_Status)) { sql.Append(" and C_Status=@Status "); } else { sql.Append(" and C_Status!='0' "); } if (!string.IsNullOrEmpty(searchModel.C_Name)) { sql.Append(" and C_Name like @name"); } if (searchModel.IdList!=null&& searchModel.IdList.Count>0) { string idJoin=string.Join("','", searchModel.IdList); sql.Append($" and C_ID in ('{idJoin}') "); } if (!string.IsNullOrEmpty(searchModel.C_ID)) { sql.Append(" and C_ID=@Id "); } sql.Append(" order by C_Name asc,D_CreateOn desc "); IEnumerable recordItemlist = EntityFrameworkCoreExtensions.GetList(DbContext.Database, sql.ToString(), parameters); searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0; return Task.FromResult(searchModel.IsPagination ? recordItemlist.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist); } } }