using WcsMain.ApiServe.Controllers.Dto.WcsDto.Scan; using WcsMain.Common; using WcsMain.DataBase.TableEntity; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.DataBase.Dao; [Component] public class AppScanRecordDao { /// /// 条件查询 /// /// /// public List? Query(AppScanRecord queryEntity) { try { var sqlFuc = CommonTool.DbServe.Queryable() .WhereIF(queryEntity.RecordId != default, it => it.RecordId == queryEntity.RecordId) .WhereIF(queryEntity.ScanId != default, it => it.ScanId == queryEntity.ScanId) .WhereIF(queryEntity.Area != default, it => it.Area == queryEntity.Area) .WhereIF(queryEntity.Code != default, it => it.Code == queryEntity.Code) .WhereIF(queryEntity.Tag != default, it => it.Tag == queryEntity.Tag) .WhereIF(queryEntity.Remark != default, it => it.Remark == queryEntity.Remark); return sqlFuc.ToList(); } catch(Exception ex) { _ = ex; return default; } } /// /// 查询所有 /// /// public List? Query() => Query(new AppScanRecord()); /// /// 分页查询 /// /// /// public (List? records, int totalCount) Query(QueryScanRecordWithPageRequest request) { try { int totalRows = 0; var sqlFuc = CommonTool.DbServe.Queryable() .WhereIF(!string.IsNullOrEmpty(request.SearchStr), w => w.ScanId!.Contains(request.SearchStr!) || w.Code!.Contains(request.SearchStr!) || w.Area!.Contains(request.SearchStr!) || w.Tag!.Contains(request.SearchStr!) || w.Remark!.Contains(request.SearchStr!)); if (request.TimeRange is { Count: 2 }) // 时间范围 { sqlFuc.Where(w => w.ScanTime > request.TimeRange[0] && w.ScanTime < request.TimeRange[1]); } sqlFuc = sqlFuc.OrderByDescending(o => new { o.ScanTime }); var queryResult = sqlFuc.ToPageList(request.Page!.PageIndex, request.Page!.PageSize, ref totalRows); return (queryResult, totalRows); } catch (Exception ex) { _ = ex; return default; } } /// /// 插入数据 /// /// /// public int Insert(params AppScanRecord[] records) { try { var sqlFuc = CommonTool.DbServe.Insertable(records); return sqlFuc.ExecuteCommand(); } catch (Exception ex) { _ = ex; return default; } } /// /// 清理多少天之前的数据 /// /// /// public int ClrearWithDays(int days) { try { var sqlFuc = CommonTool.DbServe.Deleteable() .Where(w => w.ScanTime < DateTime.Now.AddDays(-days)); return sqlFuc.ExecuteCommand(); } catch (Exception ex) { _ = ex; return default; } } }