From c91a72e9e0b046ef1dbeb059e0330770e6eeff6c Mon Sep 17 00:00:00 2001 From: icewint Date: Wed, 19 Jun 2024 16:21:58 +0800 Subject: [PATCH] =?UTF-8?q?[important]=E6=B7=BB=E5=8A=A0=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E6=9F=A5=E8=AF=A2=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scan/QueryScanRecordWithPageRequest.cs | 41 ++++++++ .../WcsController/ScanController.cs | 36 +++++++ .../Service/WcsService/ScanService.cs | 31 ++++++ WcsMain/DataBase/Dao/AppScanRecordDao.cs | 96 +++++++++++++++++++ WcsMain/DataBase/TableEntity/AppScanRecord.cs | 61 ++++++++++++ 5 files changed, 265 insertions(+) create mode 100644 WcsMain/ApiServe/Controllers/Dto/WcsDto/Scan/QueryScanRecordWithPageRequest.cs create mode 100644 WcsMain/ApiServe/Controllers/WcsController/ScanController.cs create mode 100644 WcsMain/ApiServe/Service/WcsService/ScanService.cs create mode 100644 WcsMain/DataBase/Dao/AppScanRecordDao.cs create mode 100644 WcsMain/DataBase/TableEntity/AppScanRecord.cs diff --git a/WcsMain/ApiServe/Controllers/Dto/WcsDto/Scan/QueryScanRecordWithPageRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WcsDto/Scan/QueryScanRecordWithPageRequest.cs new file mode 100644 index 0000000..7dd4520 --- /dev/null +++ b/WcsMain/ApiServe/Controllers/Dto/WcsDto/Scan/QueryScanRecordWithPageRequest.cs @@ -0,0 +1,41 @@ +using System.Text.Json.Serialization; + +namespace WcsMain.ApiServe.Controllers.Dto.WcsDto.Scan; + +public class QueryScanRecordWithPageRequest +{ + /// + /// 模糊查询字符串 + /// + [JsonPropertyName("searchStr")] + public string? SearchStr { get; set; } + + /// + /// 查询时间范围 + /// + [JsonPropertyName("timeRange")] + public List? TimeRange { get; set; } + + /// + /// 分页信息 + /// + [JsonPropertyName("page")] + public ScaanRecordPage? Page { get; set; } + + +} + +public class ScaanRecordPage +{ + /// + /// 每页大小 + /// + [JsonPropertyName("pageSize")] + public int PageSize { get; set; } + + /// + /// 当前页数 + /// + [JsonPropertyName("pageIndex")] + public int PageIndex { get; set; } +} \ No newline at end of file diff --git a/WcsMain/ApiServe/Controllers/WcsController/ScanController.cs b/WcsMain/ApiServe/Controllers/WcsController/ScanController.cs new file mode 100644 index 0000000..4cd480b --- /dev/null +++ b/WcsMain/ApiServe/Controllers/WcsController/ScanController.cs @@ -0,0 +1,36 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using WcsMain.ApiServe.ControllerFilter.ExceptionFilter; +using WcsMain.ApiServe.Controllers.Dto; +using WcsMain.ApiServe.Controllers.Dto.WcsDto.Scan; +using WcsMain.ApiServe.Service.WcsService; +using WcsMain.DataBase.TableEntity; + +namespace WcsMain.ApiServe.Controllers.WcsController; + +/// +/// 扫码器相关接口 +/// +[Route("api/wcs/scan")] +[ApiController] +[WcsExceptionFilter] +public class ScanController(ScanService scanService) : ControllerBase +{ + /// + /// 分页查询扫码记录 + /// + /// + /// + [HttpPost("queryScanRecordWithPage")] + public WcsApiResponse> QueryScanRecordWithPage([FromBody] QueryScanRecordWithPageRequest request) => scanService.QueryScanRecordWithPage(request); + + + + + + + + + + +} diff --git a/WcsMain/ApiServe/Service/WcsService/ScanService.cs b/WcsMain/ApiServe/Service/WcsService/ScanService.cs new file mode 100644 index 0000000..fdb90ae --- /dev/null +++ b/WcsMain/ApiServe/Service/WcsService/ScanService.cs @@ -0,0 +1,31 @@ +using WcsMain.ApiServe.Controllers.Dto; +using WcsMain.ApiServe.Controllers.Dto.WcsDto.Scan; +using WcsMain.ApiServe.Factory; +using WcsMain.DataBase.Dao; +using WcsMain.DataBase.TableEntity; +using WcsMain.WcsAttribute.AutoFacAttribute; + +namespace WcsMain.ApiServe.Service.WcsService; + +/// +/// 扫码器相关控制器的Service +/// +[Service] +public class ScanService(AppScanRecordDao scanRecordDao) +{ + /// + /// 分页查询扫码记录 + /// + /// + /// + public WcsApiResponse> QueryScanRecordWithPage(QueryScanRecordWithPageRequest request) + { + (List? records, int totalCount) = scanRecordDao.Query(request); + if(records == default) + { + return WcsApiResponseFactory.DataBaseErr>(); + } + return WcsApiResponseFactory.Success(totalCount, records); + } + +} diff --git a/WcsMain/DataBase/Dao/AppScanRecordDao.cs b/WcsMain/DataBase/Dao/AppScanRecordDao.cs new file mode 100644 index 0000000..9de1218 --- /dev/null +++ b/WcsMain/DataBase/Dao/AppScanRecordDao.cs @@ -0,0 +1,96 @@ +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; + } + } + + +} diff --git a/WcsMain/DataBase/TableEntity/AppScanRecord.cs b/WcsMain/DataBase/TableEntity/AppScanRecord.cs new file mode 100644 index 0000000..3987824 --- /dev/null +++ b/WcsMain/DataBase/TableEntity/AppScanRecord.cs @@ -0,0 +1,61 @@ +using SqlSugar; +using System.Text.Json.Serialization; + +namespace WcsMain.DataBase.TableEntity; + +/// +/// 扫码记录 +/// +[SugarTable("tbl_app_scan_record")] +public class AppScanRecord +{ + /// + /// 记录ID + /// + [JsonPropertyName("recordId")] + [SugarColumn(IsPrimaryKey = true, ColumnName = "record_id")] + public string? RecordId { get; set; } + + /// + /// 扫码ID + /// + [JsonPropertyName("scanId")] + [SugarColumn(ColumnName = "scan_id")] + public string? ScanId { get; set; } + + /// + /// 区域 + /// + [JsonPropertyName("area")] + [SugarColumn(ColumnName = "area")] + public string? Area { get; set; } + + /// + /// 条码 + /// + [JsonPropertyName("code")] + [SugarColumn(ColumnName = "code")] + public string? Code { get; set; } + + /// + /// 标记 + /// + [JsonPropertyName("tag")] + [SugarColumn(ColumnName = "tag")] + public string? Tag { get; set; } + + /// + /// 扫码时间 + /// + [JsonPropertyName("scanTime")] + [SugarColumn(ColumnName = "scan_time")] + public DateTime? ScanTime { get; set; } + + /// + /// 备注 + /// + [JsonPropertyName("remark")] + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + +}