From d111f8edae7823e0cc700b3e090b828ac2116ed9 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 16 七月 2025 21:26:33 +0800
Subject: [PATCH] Add MesLaboratory API functionality

---
 CLAUDE.md                                                |  140 +++++++++++
 MESApplication/bin/Debug/net8.0/MES.Service.pdb          |    0 
 MESApplication/bin/Debug/net8.0/MESApplication.dll       |    0 
 MES.Service/Dto/service/OQCDto.cs                        |    2 
 .claude/settings.local.json                              |    9 
 MES.Service/bin/Debug/net8.0/MES.Service.dll             |    0 
 MESApplication/bin/Debug/net8.0/MESApplication.xml       |   55 ++++
 MES.Service/service/QC/MesLaboratoryService.cs           |   94 +++++++
 MES.Service/Modes/MesLaboratory.cs                       |  111 +++++++++
 MES.Service/Modes/VLaboratory.cs                         |   72 ++++++
 MESApplication/bin/Debug/net8.0/MES.Service.dll          |    0 
 MESApplication/bin/Debug/net8.0/MESApplication.pdb       |    0 
 MESApplication/bin/Debug/net8.0/MESApplication.exe       |    0 
 MESApplication/Controllers/QC/MesLaboratoryController.cs |  231 +++++++++++++++++++
 MES.Service/bin/Debug/net8.0/MES.Service.pdb             |    0 
 15 files changed, 714 insertions(+), 0 deletions(-)

diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000..825f692
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,9 @@
+{
+  "permissions": {
+    "allow": [
+      "Bash(rm:*)",
+      "Bash(git add:*)"
+    ],
+    "deny": []
+  }
+}
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..7fcf8b2
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,140 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Project Overview
+
+This is a Manufacturing Execution System (MES) API application built with .NET 8, consisting of:
+- **MESApplication**: Main Web API project with controllers and middleware
+- **MES.Service**: Service layer containing business logic, data models, and database operations
+
+The system manages manufacturing operations including quality control (QC), warehouse management, inventory tracking, PLM integration, and ERP connectivity.
+
+## Development Commands
+
+### Build and Run
+```bash
+# Build the solution
+dotnet build MESApplication.sln
+
+# Run the API (from MESApplication directory)
+cd MESApplication
+dotnet run
+
+# Run with specific environment
+dotnet run --environment Development
+```
+
+### Development Server
+- API runs on: `http://localhost:5184`
+- Swagger UI available at: `http://localhost:5184/swagger`
+- IIS Express: `http://localhost:10054`
+
+### Project Structure Commands
+```bash
+# Restore NuGet packages
+dotnet restore
+
+# Clean build artifacts
+dotnet clean
+
+# Build specific project
+dotnet build MESApplication/MESApplication.csproj
+dotnet build MES.Service/MES.Service.csproj
+```
+
+## Architecture
+
+### Database Layer
+- **ORM**: SqlSugar for Oracle database connectivity
+- **Database**: Oracle (connection configured in appsettings.json)
+- **Patterns**: Repository pattern with generic DbContext<T> and specific managers
+- **Key Classes**:
+  - `SqlSugarHelper.cs`: Database connection and transaction management
+  - `DbContext<T>.cs`: Generic repository for CRUD operations
+  - `Repository.cs`: Base repository implementation
+
+### Service Layer (MES.Service)
+Organized by business domains:
+- **BasicData/**: Core master data (customers, suppliers, items, departments)
+- **QC/**: Quality control operations (inspections, testing, suspensions)  
+- **Warehouse/**: Inventory management (stock, moves, receipts, shipments)
+- **PLM/**: Product lifecycle management integration
+- **SpotCheck/**: Equipment maintenance and spot checking
+
+### API Layer (MESApplication)
+- **Controllers/**: REST endpoints organized by domain (matching service structure)
+- **Filter/**: Action filters for logging and error handling
+- **Authentication**: Not implemented (anonymous access)
+- **Serialization**: Newtonsoft.Json with camelCase naming
+
+### Key Configuration
+- **Database**: Oracle connection string in `AppSettings.DataBaseConn`
+- **CORS**: Enabled for all origins during development
+- **Swagger**: Auto-generated API documentation with XML comments
+- **Logging**: Console logging with SQL query debugging enabled
+
+### External Integrations
+- **Kingdee ERP**: Via WebService (configured URLs in AppSettings)
+- **PLM System**: Document and BOM management
+- **Real-time Inventory**: HTTP client for inventory queries
+
+### Domain Models
+Major entity categories:
+- **Inventory**: `MesInvItem*` classes for stock management
+- **Quality**: `MesQa*` classes for quality control processes
+- **Manufacturing**: `Wom*` classes for work orders
+- **Purchasing**: `Purd*` classes for procurement
+- **Sales**: `SalesOrder*` classes for order management
+
+### Data Transfer Objects (DTOs)
+- **service/**: Internal service communication DTOs
+- **webApi/**: External API integration DTOs (ERP, PLM)
+- **base/**: Common DTOs (pagination, login, settings)
+
+## Testing and Quality
+
+### Testing Commands
+```bash
+# No automated tests currently configured
+# Manual testing via Swagger UI at http://localhost:5184/swagger
+```
+
+### Common Development Tasks
+
+#### Adding New API Endpoints
+1. Create model class in `MES.Service/Modes/`
+2. Create service manager in `MES.Service/service/[Domain]/`
+3. Create controller in `MESApplication/Controllers/[Domain]/`
+4. Register dependencies in `Startup.cs` if needed
+
+#### Working with Database
+- All database operations use SqlSugar ORM with Oracle
+- Transaction support via `SqlSugarHelper.UseTransactionWithOracle()`
+- SQL queries are logged to console during development
+- Connection string configured in `appsettings.json`
+
+#### External System Integration
+- **ERP Integration**: Kingdee WebService calls configured in AppSettings
+- **PLM Integration**: Document management via HTTP clients
+- **Real-time Inventory**: Dedicated service for inventory queries
+
+### Key Files to Understand
+- `MES.Service/DB/SqlSugarHelper.cs`: Database connection management
+- `MES.Service/DB/DbContext.cs`: Generic repository pattern
+- `MES.Service/util/AppsettingsUtility.cs`: Configuration access
+- `MESApplication/Startup.cs`: Application configuration and DI setup
+- `MESApplication/Filter/ActionFilter.cs`: Request/response logging
+
+### Dependencies and Packages
+- **SqlSugarCore**: ORM for Oracle database operations
+- **Newtonsoft.Json**: JSON serialization with camelCase naming
+- **Swashbuckle.AspNetCore**: API documentation generation
+- **Oracle.EntityFrameworkCore**: Oracle database connectivity
+- **Kingdee.CDP.WebApi.SDK**: ERP system integration (local DLL)
+
+### Configuration Management
+- Environment-specific settings in `appsettings.json` and `appsettings.Development.json`
+- Database connection in `AppSettings.DataBaseConn`
+- ERP URLs in `AppSettings.TestErpUrl` and `AppSettings.ProductionErpUrl`
+- CORS enabled for all origins in development mode
\ No newline at end of file
diff --git a/MES.Service/Dto/service/OQCDto.cs b/MES.Service/Dto/service/OQCDto.cs
index 0afdc61..31dc87d 100644
--- a/MES.Service/Dto/service/OQCDto.cs
+++ b/MES.Service/Dto/service/OQCDto.cs
@@ -12,6 +12,8 @@
     public decimal? MainId { get; set; }
 
     public string? ReleaseNo { get; set; }
+    
+    public string? OrderNo { get; set; }
 
     public List<MesInvItemStocks>? ItemBarCodeData { get; set; }
     
diff --git a/MES.Service/Modes/MesLaboratory.cs b/MES.Service/Modes/MesLaboratory.cs
new file mode 100644
index 0000000..ea8da8c
--- /dev/null
+++ b/MES.Service/Modes/MesLaboratory.cs
@@ -0,0 +1,111 @@
+using SqlSugar;
+using System;
+
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 瀹為獙瀹ゆ娴嬫暟鎹〃
+    /// </summary>
+    [SugarTable("MES_LABORATORY")]
+    public class MesLaboratory
+    {
+        /// <summary>
+        /// 涓婚敭ID
+        /// </summary>
+        [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_MES_LABORATORY",
+            IsPrimaryKey = true)]
+        public decimal Id { get; set; }
+
+        /// <summary>
+        /// 宸ュ崟鍙�
+        /// </summary>
+        [SugarColumn(ColumnName = "BILL_NO", Length = 100)]
+        public string? BillNo { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇绾夸綋缂栫爜
+        /// </summary>
+        [SugarColumn(ColumnName = "LINE_NO", Length = 100)]
+        public string? LineNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡id
+        /// </summary>
+        [SugarColumn(ColumnName = "ITEM_ID")]
+        public int? ItemId { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        [SugarColumn(ColumnName = "ITEM_NO", Length = 64)]
+        public string? ItemNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [SugarColumn(ColumnName = "ITEM_NAME", Length = 500)]
+        public string? ItemName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡瑙勬牸
+        /// </summary>
+        [SugarColumn(ColumnName = "ITEM_MODEL", Length = 3000)]
+        public string? ItemModel { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇杞﹂棿id
+        /// </summary>
+        [SugarColumn(ColumnName = "DEPARTMENTID")]
+        public int? DepartmentId { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇杞﹂棿缂栫爜
+        /// </summary>
+        [SugarColumn(ColumnName = "DEPARTMENTCODE", Length = 32)]
+        public string? DepartmentCode { get; set; }
+
+        /// <summary>
+        /// 閿�鍞鍗曞彿
+        /// </summary>
+        [SugarColumn(ColumnName = "SALE_ORDER_NOC", Length = 50)]
+        public string? SaleOrderNoc { get; set; }
+
+        /// <summary>
+        /// 妫�楠岀粨鏋�
+        /// </summary>
+        [SugarColumn(ColumnName = "INSPECTION_RESULT", Length = 20)]
+        public string? InspectionResult { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        [SugarColumn(ColumnName = "CREATE_TIME", InsertServerTime = true)]
+        public DateTime? CreateTime { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        [SugarColumn(ColumnName = "CREATE_BY", Length = 100)]
+        public string? CreateBy { get; set; }
+
+        /// <summary>
+        /// 妫�楠屾椂闂�
+        /// </summary>
+        [SugarColumn(ColumnName = "INSPECTION_TIME")]
+        public DateTime? InspectionTime { get; set; }
+
+        /// <summary>
+        /// 妫�楠屼汉
+        /// </summary>
+        [SugarColumn(ColumnName = "INSPECTION_BY", Length = 100)]
+        public string? InspectionBy { get; set; }
+        
+        
+        [SugarColumn(IsIgnore = true)]
+        public string? CreateUser { get; set; }
+        
+        //inspection
+        [SugarColumn(IsIgnore = true)]
+        public string? InspectionUser { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/VLaboratory.cs b/MES.Service/Modes/VLaboratory.cs
new file mode 100644
index 0000000..56c1f77
--- /dev/null
+++ b/MES.Service/Modes/VLaboratory.cs
@@ -0,0 +1,72 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+
+/// <summary>
+/// 瀹為獙瀹ゆ娴嬫暟鎹〃
+/// </summary>
+[SugarTable("V_LABORATORY")]
+public class VLaboratory
+{
+    /// <summary>
+    /// 涓婚敭ID
+    /// </summary>
+    [SugarColumn(ColumnName = "ID",
+        IsPrimaryKey = true)]
+    public decimal Id { get; set; }
+
+    /// <summary>
+    /// 宸ュ崟鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_NO")]
+    public string? BillNo { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇绾夸綋缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "LINE_NO")]
+    public string? LineNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡id
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_ID")]
+    public int? ItemId { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string? ItemNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NAME")]
+    public string? ItemName { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡瑙勬牸
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_MODEL")]
+    public string? ItemModel { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇杞﹂棿id
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPARTMENTID")]
+    public int? DepartmentId { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇杞﹂棿缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPARTMENTCODE")]
+    public string? DepartmentCode { get; set; }
+
+    /// <summary>
+    /// 閿�鍞鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "SALE_ORDER_NOC")]
+    public string? SaleOrderNoc { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/bin/Debug/net8.0/MES.Service.dll b/MES.Service/bin/Debug/net8.0/MES.Service.dll
index 762d0d9..44af709 100644
--- a/MES.Service/bin/Debug/net8.0/MES.Service.dll
+++ b/MES.Service/bin/Debug/net8.0/MES.Service.dll
Binary files differ
diff --git a/MES.Service/bin/Debug/net8.0/MES.Service.pdb b/MES.Service/bin/Debug/net8.0/MES.Service.pdb
index 36a4fa5..aa15e32 100644
--- a/MES.Service/bin/Debug/net8.0/MES.Service.pdb
+++ b/MES.Service/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
diff --git a/MES.Service/service/QC/MesLaboratoryService.cs b/MES.Service/service/QC/MesLaboratoryService.cs
new file mode 100644
index 0000000..8ab7d4f
--- /dev/null
+++ b/MES.Service/service/QC/MesLaboratoryService.cs
@@ -0,0 +1,94 @@
+锘縰sing System.Data;
+using MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+using DbType = System.Data.DbType;
+
+namespace MES.Service.service.QC;
+
+public class MesLaboratoryService : Repository<MesLaboratory>
+{
+    //OQCDto
+    public bool SaveLaboratory(OQCDto dto)
+    {
+        //1.鏍规嵁BillNo鏌ヨ瑙嗗浘VLaboratory锛岀敤dto鐨凮rderNo锛屼娇鐢�.First()鍙繑鍥炰竴涓璞�
+        var vLaboratory = Context.Queryable<VLaboratory>()
+            .Where(x => x.BillNo == dto.OrderNo)
+            .First();
+
+        //2.灏嗘煡璇㈠嚭鏉ョ殑VLaboratory杞崲涓篗esLaboratory
+        var mesLaboratory = new MesLaboratory
+        {
+            BillNo = vLaboratory.BillNo,
+            LineNo = vLaboratory.LineNo,
+            ItemId = vLaboratory.ItemId,
+            ItemNo = vLaboratory.ItemNo,
+            ItemName = vLaboratory.ItemName,
+            ItemModel = vLaboratory.ItemModel,
+            DepartmentId = vLaboratory.DepartmentId,
+            DepartmentCode = vLaboratory.DepartmentCode,
+            SaleOrderNoc = vLaboratory.SaleOrderNoc,
+            CreateBy = dto.CreateUser,
+            CreateTime = DateTime.Now
+        };
+
+        //3.鎻掑叆鍒版暟鎹簱涓�
+        return Context.Insertable(mesLaboratory)
+            .IgnoreColumns(ignoreNullColumn: true)
+            .ExecuteCommand() > 0;
+    }
+
+    public new object InsertReturnIdentity(MesLaboratory data)
+    {
+        return base.InsertReturnIdentity(data);
+    }
+
+    public (List<MesLaboratory> item, int TotalCount) GetPage(
+        XJPageResult queryObj)
+    {
+        if (queryObj == null)
+            throw new ArgumentNullException(nameof(queryObj));
+
+        var db = Db;
+        var totalCount = 0;
+
+        if (!decimal.TryParse(queryObj.id, out var id))
+            id = 0;
+
+        var pageList = db
+            .Queryable<MesLaboratory, SysUser, SysUser>((a, b, c) =>
+                new JoinQueryInfos(JoinType.Left, a.CreateBy == b.Fcode,
+                    JoinType.Left, a.InspectionBy == c.Fcode
+                ))
+            .WhereIF(id > 0, (a, b, c) => a.Id == id)
+            .Select((a, b, c) => new MesLaboratory()
+            {
+                CreateUser = b.Fname,
+                InspectionUser = c.Fname,
+                DepartmentId = a.DepartmentId,
+            }, true)
+            .OrderByDescending(a => a.Id)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (pageList, totalCount);
+    }
+
+    /// <summary>
+    /// 褰曞叆妫�楠岀粨鏋�
+    /// </summary>
+    /// <param name="data">瀹為獙瀹ゆ娴嬫暟鎹�</param>
+    /// <returns></returns>
+    public bool UpdateInspectionResult(MesLaboratory data)
+    {
+        return Context.Updateable<MesLaboratory>()
+            .SetColumnsIF(!string.IsNullOrEmpty(data.InspectionResult),
+                x => x.InspectionResult == data.InspectionResult)
+            .SetColumnsIF(!string.IsNullOrEmpty(data.InspectionBy),
+                x => x.InspectionBy == data.InspectionBy)
+            .SetColumns(x => x.InspectionTime == DateTime.Now)
+            .Where(x => x.Id == data.Id)
+            .ExecuteCommand() > 0;
+    }
+}
\ No newline at end of file
diff --git a/MESApplication/Controllers/QC/MesLaboratoryController.cs b/MESApplication/Controllers/QC/MesLaboratoryController.cs
new file mode 100644
index 0000000..0275408
--- /dev/null
+++ b/MESApplication/Controllers/QC/MesLaboratoryController.cs
@@ -0,0 +1,231 @@
+using System.Dynamic;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.service.QC;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+
+namespace MESApplication.Controllers.QC;
+
+[Route("api/[controller]")]
+[ApiController]
+public class MesLaboratoryController : ControllerBase
+{
+    private readonly MesLaboratoryService m = new();
+
+    [HttpPost("saveLaboratory")]
+    public ResponseResult SaveLaboratory([FromBody] OQCDto dto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var result = m.SaveLaboratory(dto);
+            resultInfos.result = result;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鑾峰彇鎵�鏈�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetList();
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鑾峰彇
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetById")]
+    public ResponseResult GetById(decimal id)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetById(id);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鍒犻櫎
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("DeleteByIds")]
+    public ResponseResult DeleteByIds([FromBody] object[] ids)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.DeleteByIds(ids);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Insert")]
+    public ResponseResult Add([FromBody] MesLaboratory data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Insert(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞杩斿洖鑷
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("InsertReturnIdentity")]
+    public ResponseResult InsertReturnIdentity([FromBody] MesLaboratory data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.InsertReturnIdentity(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     淇敼
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("Update")]
+    public ResponseResult Update([FromBody] MesLaboratory data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Update(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鍒嗛〉鏌ヨ
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetPage")]
+    public ResponseResult GetPage([FromBody] XJPageResult queryObj)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var (items, totalCount) = m.GetPage(queryObj);
+            resultInfos.tbBillList = items;
+            resultInfos.totalCount = totalCount;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     褰曞叆妫�楠岀粨鏋�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("UpdateInspectionResult")]
+    public ResponseResult UpdateInspectionResult([FromBody] MesLaboratory data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var result = m.UpdateInspectionResult(data);
+            resultInfos.result = result;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file
diff --git a/MESApplication/bin/Debug/net8.0/MES.Service.dll b/MESApplication/bin/Debug/net8.0/MES.Service.dll
index 762d0d9..44af709 100644
--- a/MESApplication/bin/Debug/net8.0/MES.Service.dll
+++ b/MESApplication/bin/Debug/net8.0/MES.Service.dll
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MES.Service.pdb b/MESApplication/bin/Debug/net8.0/MES.Service.pdb
index 36a4fa5..aa15e32 100644
--- a/MESApplication/bin/Debug/net8.0/MES.Service.pdb
+++ b/MESApplication/bin/Debug/net8.0/MES.Service.pdb
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.dll b/MESApplication/bin/Debug/net8.0/MESApplication.dll
index 0e01dd8..d47871b 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.dll
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.dll
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.exe b/MESApplication/bin/Debug/net8.0/MESApplication.exe
index 6f410ed..9d71c13 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.exe
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.exe
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.pdb b/MESApplication/bin/Debug/net8.0/MESApplication.pdb
index 6e3d7db..bbbc96f 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.pdb
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.pdb
Binary files differ
diff --git a/MESApplication/bin/Debug/net8.0/MESApplication.xml b/MESApplication/bin/Debug/net8.0/MESApplication.xml
index 8bad08d..5dd1870 100644
--- a/MESApplication/bin/Debug/net8.0/MESApplication.xml
+++ b/MESApplication/bin/Debug/net8.0/MESApplication.xml
@@ -757,6 +757,61 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="M:MESApplication.Controllers.QC.BaseController.getLljAllImgByFid(Newtonsoft.Json.Linq.JObject)">
+            <summary>
+                鑾峰彇鏉ユ枡妫�鍗曚釜妫�楠屽崟涓婁紶鐨勬墍鏈夊浘鐗�
+            </summary>
+            <param name="data"></param>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.GetList">
+            <summary>
+                鑾峰彇鎵�鏈�
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.GetById(System.Decimal)">
+            <summary>
+                鏍规嵁涓婚敭鑾峰彇
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.DeleteByIds(System.Object[])">
+            <summary>
+                鏍规嵁涓婚敭鍒犻櫎
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.Add(MES.Service.Modes.MesLaboratory)">
+            <summary>
+                娣诲姞
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.InsertReturnIdentity(MES.Service.Modes.MesLaboratory)">
+            <summary>
+                娣诲姞杩斿洖鑷
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.Update(MES.Service.Modes.MesLaboratory)">
+            <summary>
+                淇敼
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.GetPage(MES.Service.Dto.service.XJPageResult)">
+            <summary>
+                鍒嗛〉鏌ヨ
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:MESApplication.Controllers.QC.MesLaboratoryController.UpdateInspectionResult(MES.Service.Modes.MesLaboratory)">
+            <summary>
+                褰曞叆妫�楠岀粨鏋�
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:MESApplication.Controllers.QC.MesLineUserController.GetList">
             <summary>
                 鑾峰彇鎵�鏈�

--
Gitblit v1.9.3