From 2914a3a86ce976e5b397ee41bd1553e45fe68831 Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期三, 12 十一月 2025 23:36:10 +0800
Subject: [PATCH] 产线提交代码上传

---
 StandardPda/MES.Service/MES.Service.csproj                            |   10 
 StandardPda/MES.Service/service/QC/ProductionLineService.cs           |  398 +++++++++++++++++++++++++++++++++++++++
 StandardPda/MES.Service/Dto/service/ProductionLineDot.cs              |   92 +++++++++
 StandardPda/MESApplication/Controllers/QC/ProductionLineController.cs |   86 ++++++++
 4 files changed, 583 insertions(+), 3 deletions(-)

diff --git a/StandardPda/MES.Service/Dto/service/ProductionLineDot.cs b/StandardPda/MES.Service/Dto/service/ProductionLineDot.cs
new file mode 100644
index 0000000..82aed2c
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/ProductionLineDot.cs
@@ -0,0 +1,92 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+
+#region DTO 绫诲畾涔�
+
+namespace MES.Service.Dto.service;
+
+/// <summary>
+/// 浜х嚎鎻愪氦鏌ヨ鍙傛暟
+/// </summary>
+public class ProductionLineQueryDto
+{
+    public int PageIndex { get; set; } = 1;
+    public int Limit { get; set; } = 20;
+    public string StatusUser { get; set; }
+    public int Status { get; set; }  // 0: 鏈彁浜�, 1: 宸叉彁浜�
+    public string SearchValue { get; set; }
+}
+
+/// <summary>
+/// 浜х嚎鎻愪氦鍒嗛〉缁撴灉
+/// </summary>
+public class ProductionLinePageResult
+{
+    public decimal? ID { get; set; }
+    public string DAA001 { get; set; }
+    public string ItemNo { get; set; }
+    public string DAA003 { get; set; }
+    public string DAA004 { get; set; }
+    public decimal? DAA008 { get; set; }
+    public string DAA018 { get; set; }
+    public string? DaA019 { get; set; }
+    public string Line { get; set; }
+    public DateTime? DAA024 { get; set; }
+    public string BillNo { get; set; }
+    public string Result { get; set; }
+    public string StatusUser { get; set; }
+    public DateTime? CreateTime { get; set; }
+    public decimal? InspectionId { get; set; }
+    public string? Pbaid { get; set; }
+    public string ProjecT_CODE { get; set; }
+    public string FName { get; set; }
+    public int Urgent { get; set; }
+    public int IsFirst { get; set; }
+    public int SortOrder { get; set; }
+}
+
+public class WorkOrderQueryResult
+{
+    public decimal? ID { get; set; }
+    public string DAA001 { get; set; }
+    public string ItemNo { get; set; }
+    public string DAA003 { get; set; }
+    public string DAA004 { get; set; }
+    public decimal? DAA008 { get; set; }
+    public string DAA018 { get; set; }
+    public string DaA019 { get; set; }    // 鏀逛负 string
+    public string Line { get; set; }
+    public DateTime? DAA024 { get; set; }
+    public string Pbaid { get; set; }     // 鏀逛负 string
+    public string ProjecT_CODE { get; set; }
+    public string FName { get; set; }
+    public int Urgent { get; set; }
+    public int IsFirst { get; set; }
+    public string BillNo { get; set; }
+    public string Result { get; set; }
+    public string StatusUser { get; set; }
+    public DateTime? CreateTime { get; set; }
+    public decimal? InspectionId { get; set; }
+}
+
+
+/// <summary>
+/// 妫�楠岀粨鏋淒TO
+/// </summary>
+public class InspectionResultDto
+{
+    public decimal? ID { get; set; }
+    public decimal Pbaid { get; set; }
+    public string BillNo { get; set; }
+    public string StatusUser { get; set; }
+    public DateTime? CreateTime { get; set; }
+    public string Result { get; set; }
+}
+
+#endregion
+
diff --git a/StandardPda/MES.Service/MES.Service.csproj b/StandardPda/MES.Service/MES.Service.csproj
index fa6e727..5333662 100644
--- a/StandardPda/MES.Service/MES.Service.csproj
+++ b/StandardPda/MES.Service/MES.Service.csproj
@@ -7,9 +7,13 @@
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="Masuit.Tools.Core" Version="2024.3.4"/>
-        <PackageReference Include="RestSharp" Version="112.1.0"/>
-        <PackageReference Include="SqlSugarCore" Version="5.1.4.158"/>
+      <Compile Remove="service\QC\ProductionLineController.cs" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <PackageReference Include="Masuit.Tools.Core" Version="2024.3.4" />
+        <PackageReference Include="RestSharp" Version="112.1.0" />
+        <PackageReference Include="SqlSugarCore" Version="5.1.4.158" />
     </ItemGroup>
 
 </Project>
diff --git a/StandardPda/MES.Service/service/QC/ProductionLineService.cs b/StandardPda/MES.Service/service/QC/ProductionLineService.cs
new file mode 100644
index 0000000..e3c1202
--- /dev/null
+++ b/StandardPda/MES.Service/service/QC/ProductionLineService.cs
@@ -0,0 +1,398 @@
+锘縰sing Masuit.Tools;
+using MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.util;
+using SqlSugar;
+
+namespace MES.Service.service.QC;
+
+/// <summary>
+/// 浜х嚎鎻愪氦鏈嶅姟
+/// </summary>
+public class ProductionLineService
+{
+    private readonly BaseService _baseService = new();
+
+    /// <summary>
+    /// 鑾峰彇浜х嚎鎻愪氦椤甸潰鏁版嵁锛堟湭鎻愪氦/宸叉彁浜わ級
+    /// </summary>
+    /// <param name="queryObj">鏌ヨ鍙傛暟</param>
+    /// <returns></returns>
+    public (List<ProductionLinePageResult> item, int TotalCount) GetProductionLinePage(ProductionLineQueryDto queryObj)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        if (queryObj.Status == 0)
+        {
+            // 鏈彁浜ら〉闈㈡煡璇�
+            return GetUnsubmittedData(queryObj, db);
+        }
+        else
+        {
+            // 宸叉彁浜ら〉闈㈡煡璇�
+            return GetSubmittedData(queryObj, db);
+        }
+    }
+
+    /// <summary>
+    /// 鑾峰彇鏈彁浜ゆ暟鎹紙浠庡伐鍗曡〃鏌ヨ锛屽寘鍚笉鍚堟牸鐨勯妫�鍗曪級
+    /// </summary>
+    private (List<ProductionLinePageResult> item, int TotalCount) GetUnsubmittedData(ProductionLineQueryDto queryObj, SqlSugarClient db)
+    {
+        var totalCount = 0;
+
+        //// 绗竴姝ワ細鏌ヨ宸ュ崟鍩虹鏁版嵁
+        //var workOrderSql = @"
+        //SELECT 
+        //    A.ID,
+        //    A.DAA001,
+        //    A.DAA002 AS ItemNo,
+        //    A.DAA003,
+        //    A.DAA004,
+        //    A.DAA008,
+        //    A.DAA018,
+        //    A.DAA019 AS DaA019,
+        //    A.DAA020 AS Line,
+        //    A.DAA024,
+        //    A.PID AS Pbaid,
+        //    T.PROJECT_CODE AS ProjecT_CODE,
+        //    u.FNAME AS FName,
+        //    0 AS Urgent,
+        //    0 AS IsFirst,
+        //    CAST(NULL AS VARCHAR2(50)) AS BillNo,
+        //    CAST(NULL AS VARCHAR2(50)) AS Result,
+        //    CAST(NULL AS VARCHAR2(50)) AS StatusUser,
+        //    CAST(NULL AS DATE) AS CreateTime,
+        //    CAST(NULL AS NUMBER) AS InspectionId
+        //FROM WOMDAA A
+        //LEFT JOIN WOMCAA c ON c.CAA001 = A.DAA021
+        //LEFT JOIN MES_PROJECT T ON C.PROJECT = T.ID
+        //LEFT JOIN MES_UNIT u ON TO_CHAR(u.ID) = TO_CHAR(A.DAA005)
+        //WHERE A.DAA018 LIKE '%宸插紑宸�%' 
+        //    AND A.FSTATUS = 1 
+        //    AND A.F_TYPE = 0
+        //    AND CASE 
+        //        WHEN C.CAA023 = '0' THEN '寮�绔�'
+        //        WHEN C.CAA023 = '1' THEN '宸叉牳鍑�'
+        //        WHEN C.CAA023 = '2' THEN '寮�宸�'
+        //        WHEN C.CAA023 = '3' THEN '瀹屽伐'
+        //        WHEN C.CAA023 = '4' THEN '鏍稿噯涓�' 
+        //    END LIKE '%寮�宸�%'";
+
+        // 绗竴姝ワ細鏌ヨ宸ュ崟鍩虹鏁版嵁
+        // 绗竴姝ワ細鏌ヨ宸ュ崟鍩虹鏁版嵁
+        var workOrderSql = @"
+        SELECT 
+            A.ID,
+            A.DAA001,
+            item.ITEM_NO AS ItemNo,
+            A.DAA003,
+            A.DAA004,
+            A.DAA008,
+            A.DAA018,
+            A.DAA019 AS DaA019,
+            A.DAA020 AS Line,
+            
+            A.PID AS Pbaid,
+            T.PROJECT_CODE AS ProjecT_CODE,
+            u.FNAME AS FName,
+            0 AS Urgent,
+            0 AS IsFirst,
+            CAST(NULL AS VARCHAR2(50)) AS BillNo,
+            CAST(NULL AS VARCHAR2(50)) AS Result,
+            CAST(BE1.FNAME AS VARCHAR2(50)) AS StatusUser,
+            CAST(NULL AS DATE) AS CreateTime,
+            CAST(NULL AS NUMBER) AS InspectionId
+        FROM WOMDAA A
+        LEFT JOIN WOMCAA c ON c.CAA001 = A.DAA021
+        LEFT JOIN MES_PROJECT T ON C.PROJECT = T.ID
+        LEFT JOIN MES_UNIT u ON TO_CHAR(u.ID) = TO_CHAR(A.DAA005)
+ left join MES_ITEMS item on item.ITEM_ID=c.CAA006
+  LEFT JOIN IQC_BEFORE_SJ BE ON BE.ITEM_ID = item.ITEM_ID
+         LEFT JOIN IQC_BEFORE_FROM_SJ BE2 ON BE.PID = BE2.ID
+         LEFT JOIN SYS_USER BE1 ON BE2.SID = BE1.FID
+        WHERE A.DAA018 LIKE '%宸插紑宸�%' 
+            AND A.FSTATUS = 1 
+            AND A.F_TYPE = 0
+            AND CASE 
+                WHEN C.CAA023 = '0' THEN '寮�绔�'
+                WHEN C.CAA023 = '1' THEN '宸叉牳鍑�'
+                WHEN C.CAA023 = '2' THEN '寮�宸�'
+                WHEN C.CAA023 = '3' THEN '瀹屽伐'
+                WHEN C.CAA023 = '4' THEN '鏍稿噯涓�' 
+            END LIKE '%寮�宸�%'";
+
+        // 娣诲姞鎼滅储鏉′欢
+        if (StringUtil.IsNotNullOrEmpty(queryObj.SearchValue))
+        {
+            workOrderSql += " AND (A.DAA001 LIKE :SearchValue OR A.DAA002 LIKE :SearchValue)";
+        }
+
+        var workOrders = db.SqlQueryable<ProductionLinePageResult>(workOrderSql)
+            .AddParameters(new { SearchValue = $"%{queryObj.SearchValue}%" })
+            .ToList();
+
+        if (!workOrders.Any())
+        {
+            return (new List<ProductionLinePageResult>(), 0);
+        }
+
+        // 杞崲涓哄瓧绗︿覆鐢ㄤ簬IN鏌ヨ
+        var workOrderIdStrings = workOrders
+            .Where(w => !string.IsNullOrEmpty(w.ID.ToString()))
+            .Select(w => w.ID)
+            .ToList();
+
+        if (!workOrderIdStrings.Any())
+        {
+            return (new List<ProductionLinePageResult>(), 0);
+        }
+
+        // 绗簩姝ワ細鏌ヨ杩欎簺宸ュ崟瀵瑰簲鐨勯妫�鍗曞強妫�楠岀粨鏋�
+        var inspectionResultSql = $@"
+        SELECT
+    A.ID,
+    A.BILL_NO AS BillNo,
+    A.PBAID,
+    A.STATUS_USER AS StatusUser,
+    A.CREATE_TIME AS CreateTime,
+    CASE
+        WHEN RES.妫�楠岀粨鏋� IS NULL THEN '鏈畬鎴�'
+        ELSE RES.妫�楠岀粨鏋�
+    END AS Result
+FROM (
+    -- 鍙彇姣忎釜宸ュ崟(PBAID)鏈�鏂颁竴鏉¢妫�鍗�
+    SELECT *
+    FROM (
+        SELECT
+            R.*,
+            ROW_NUMBER() OVER(PARTITION BY R.PBAID ORDER BY R.CREATE_TIME DESC) AS RN
+        FROM QS_ITEM_IPI_REQ R
+    ) WHERE RN = 1
+) A
+LEFT JOIN (
+    SELECT
+        PID,
+        CASE
+            WHEN (COUNT(CASE WHEN PASSED = -1 THEN 1 END) > 0) THEN NULL
+            WHEN (COUNT(CASE WHEN PASSED = 1 THEN 1 END) = COUNT(*)) THEN '鍚堟牸'
+            ELSE '涓嶅悎鏍�'
+        END AS 妫�楠岀粨鏋�
+    FROM (
+        SELECT
+            A.PID,
+            CASE
+                WHEN (A.IS_PASS IS NULL OR B.瀹屾垚鐘舵�� IS NULL) THEN -1
+                WHEN (NVL(A.IS_PASS, -1) = NVL(B.瀹屾垚鐘舵��, -1) AND A.IS_PASS = 1) THEN 1
+                WHEN (NVL(A.IS_PASS, -1) = NVL(B.瀹屾垚鐘舵��, -1) AND A.IS_PASS = 0) THEN 0
+                ELSE -1
+            END AS PASSED
+        FROM QS_ITEM_IPI_ITEM A
+        LEFT JOIN (
+            SELECT
+                PID,
+                CASE
+                    WHEN (COUNT(CASE WHEN FSTAND IS NULL THEN 1 END) > 0) THEN NULL
+                    WHEN (COUNT(CASE WHEN FSTAND = '鈭�' THEN 1 END) = COUNT(1)) THEN 1
+                    ELSE 0
+                END AS 瀹屾垚鐘舵��
+            FROM QS_ITEM_IPI_ITEM_DETAIL
+            GROUP BY PID
+        ) B ON A.ID = B.PID
+    )
+    GROUP BY PID
+) RES ON RES.PID = A.ID
+        WHERE A.PBAID IN ({string.Join(",", workOrderIdStrings)})";
+
+        var inspections = db.SqlQueryable<InspectionResultDto>(inspectionResultSql).ToList();
+
+        // 绗笁姝ワ細鍚堝苟鏁版嵁骞惰繃婊�
+        var result = (from wo in workOrders
+                      join ins in inspections on wo.ID.ToString() equals ins.Pbaid.ToString() into insGroup
+                      from ins in insGroup.DefaultIfEmpty()
+                      where ins == null || ins.Result == "涓嶅悎鏍�"  // 鏈彁浜ゆ垨涓嶅悎鏍肩殑鏄剧ず
+                      select new ProductionLinePageResult
+                      {
+                          ID = wo.ID,
+                          DAA001 = wo.DAA001,
+                          ItemNo = wo.ItemNo,
+                          DAA003 = wo.DAA003,
+                          DAA004 = wo.DAA004,
+                          DAA008 = wo.DAA008,
+                          DAA018 = wo.DAA018,
+                          DaA019 = wo.DaA019,
+                          Line = wo.Line,
+                          DAA024 = wo.DAA024,
+                          ProjecT_CODE = wo.ProjecT_CODE,
+                          FName = wo.FName,
+                          BillNo = ins?.BillNo,
+                          Result = ins?.Result,
+                          StatusUser = wo?.StatusUser,
+                          CreateTime = ins?.CreateTime,
+                          InspectionId = ins?.ID,
+                          Pbaid = wo.Pbaid,
+                          Urgent = wo.Urgent,
+                          IsFirst = wo.IsFirst,
+                          SortOrder = ins?.Result == "涓嶅悎鏍�" ? 1 : 0  // 涓嶅悎鏍肩疆椤�
+                      })
+                     .OrderByDescending(x => x.SortOrder)
+                     .ThenByDescending(x => x.DAA024)
+                     .ToList();
+
+        totalCount = result.Count;
+
+        // 鍒嗛〉
+        var pagedData = result
+            .Skip((queryObj.PageIndex - 1) * queryObj.Limit)
+            .Take(queryObj.Limit)
+            .ToList();
+
+        return (pagedData, totalCount);
+    }
+
+    /// <summary>
+    /// 鑾峰彇宸叉彁浜ゆ暟鎹紙浠庨妫�鍗曡〃鏌ヨ锛�
+    /// </summary>
+    private (List<ProductionLinePageResult> item, int TotalCount) GetSubmittedData(ProductionLineQueryDto queryObj, SqlSugarClient db)
+    {
+        var totalCount = 0;
+
+        var sql = @"
+            SELECT 
+                A.ID AS InspectionId,
+                A.BILL_NO AS BillNo,
+                A.PBAID AS Pbaid,
+                DA.DAA001,
+               item.ITEM_NO AS ItemNo,
+                DA.DAA003,
+                DA.DAA004,
+                DA.DAA008,
+                DA.DAA018,
+                DA.DAA019 AS DaA019,
+                DA.DAA020 AS Line,
+                A.CREATE_TIME AS CreateTime,
+                 NVL(BE3.FNAME, BE1.FNAME)  AS StatusUser,
+                A.FSUBMIT,
+                A.CREATE_BY,
+                0 AS Urgent,
+                0 AS IsFirst,
+                T.PROJECT_CODE AS ProjecT_CODE,
+                CASE
+                    WHEN 妫�楠岀粨鏋� IS NULL THEN '鏈畬鎴�'
+                    ELSE 妫�楠岀粨鏋�
+                END AS Result
+            FROM QS_ITEM_IPI_REQ A
+            LEFT JOIN WOMDAA DA ON DA.ID = A.PBAID
+            LEFT JOIN WOMCAA c ON c.CAA001 = DA.DAA021
+            LEFT JOIN MES_PROJECT T ON C.PROJECT = T.ID
+ left join MES_ITEMS item on item.ITEM_ID=c.CAA006
+--鍙樻洿鍚�
+LEFT JOIN INSPECTOR_CHANGE_SJ_LOG chlog
+                   ON chlog.INSPECTION_NO = a.BILL_NO AND chlog.IS_VALID = 'Y'
+ LEFT JOIN SYS_USER BE3 ON chlog.INSPECTOR = BE3.FCODE
+--鍙樻洿鍓�
+  LEFT JOIN IQC_BEFORE_SJ BE ON BE.ITEM_ID = item.ITEM_ID
+         LEFT JOIN IQC_BEFORE_FROM_SJ BE2 ON BE.PID = BE2.ID
+         LEFT JOIN SYS_USER BE1 ON BE2.SID = BE1.FID
+            LEFT JOIN (
+                SELECT 
+                    PID,
+                    CASE
+                        WHEN (COUNT(CASE WHEN PASSED = -1 THEN 1 END) > 0) THEN NULL
+                        WHEN (COUNT(CASE WHEN PASSED = 1 THEN 1 END) = COUNT(*)) THEN '鍚堟牸'
+                        ELSE '涓嶅悎鏍�'
+                    END AS 妫�楠岀粨鏋�
+                FROM (
+                    SELECT 
+                        A.PID,
+                        CASE
+                            WHEN (A.IS_PASS IS NULL OR B.瀹屾垚鐘舵�� IS NULL) THEN -1
+                            WHEN (NVL(A.IS_PASS, -1) = NVL(B.瀹屾垚鐘舵��, -1) AND A.IS_PASS = 1) THEN 1
+                            WHEN (NVL(A.IS_PASS, -1) = NVL(B.瀹屾垚鐘舵��, -1) AND A.IS_PASS = 0) THEN 0
+                            ELSE -1
+                        END AS PASSED
+                    FROM QS_ITEM_IPI_ITEM A
+                    LEFT JOIN (
+                        SELECT 
+                            PID,
+                            CASE
+                                WHEN (COUNT(CASE WHEN FSTAND IS NULL THEN 1 END) > 0) THEN NULL
+                                WHEN (COUNT(CASE WHEN FSTAND = '鈭�' THEN 1 END) = COUNT(1)) THEN 1
+                                ELSE 0
+                            END AS 瀹屾垚鐘舵��
+                        FROM QS_ITEM_IPI_ITEM_DETAIL
+                        GROUP BY PID
+                    ) B ON A.ID = B.PID
+                )
+                GROUP BY PID
+            ) RES ON RES.PID = A.ID
+            WHERE A.ID IS NOT NULL";
+
+        // 娣诲姞鎼滅储鏉′欢
+        if (StringUtil.IsNotNullOrEmpty(queryObj.SearchValue))
+        {
+            sql += " AND (A.BILL_NO LIKE :SearchValue OR DA.DAA001 LIKE :SearchValue OR DA.DAA002 LIKE :SearchValue)";
+        }
+
+        sql += " ORDER BY A.CREATE_TIME DESC";
+
+        var data = db.SqlQueryable<ProductionLinePageResult>(sql)
+            .AddParameters(new { SearchValue = $"%{queryObj.SearchValue}%" })
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (data, totalCount);
+    }
+
+
+
+    /// <summary>
+    /// 鎻愪氦妫�楠岋紙璋冪敤瀛樺偍杩囩▼鐢熸垚棣栨鍗曪級
+    /// </summary>
+    /// <param name="workOrderId">宸ュ崟ID</param>
+    /// <param name="userNo">鐢ㄦ埛璐﹀彿</param>
+    /// <returns></returns>
+    public (bool success, string message) SubmitInspection(decimal workOrderId, string userNo)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        try
+        {
+            // 瀹氫箟瀛樺偍杩囩▼鍙傛暟
+            var pId = new SugarParameter("P_ID", workOrderId);
+            var pUser = new SugarParameter("P_USER", userNo);
+            var pIsh = new SugarParameter("P_ISH", 0);  // 0琛ㄧず棣栨
+            var pFlag = new SugarParameter("P_FLAG", null, true) { Direction = System.Data.ParameterDirection.Output };
+            var pText = new SugarParameter("P_TEXT", null, true)
+            {
+                Direction = System.Data.ParameterDirection.Output,
+                Size = 255
+            };
+
+            // 璋冪敤瀛樺偍杩囩▼
+            db.Ado.UseStoredProcedure().ExecuteCommand(
+                "PRC_SJ_GENERATE",
+                pId, pUser, pIsh, pFlag, pText
+            );
+
+            // 鑾峰彇杈撳嚭鍙傛暟
+            var flag = pFlag.Value != null ? Convert.ToInt32(pFlag.Value) : 1;
+            var text = pText.Value?.ToString() ?? "鏈煡閿欒";
+
+            if (flag == 0)
+            {
+                return (true, text);
+            }
+            else
+            {
+                return (false, text);
+            }
+        }
+        catch (Exception ex)
+        {
+            return (false, $"鎻愪氦妫�楠屽け璐�: {ex.Message}");
+        }
+    }
+
+
+
+}
diff --git a/StandardPda/MESApplication/Controllers/QC/ProductionLineController.cs b/StandardPda/MESApplication/Controllers/QC/ProductionLineController.cs
new file mode 100644
index 0000000..d497ca8
--- /dev/null
+++ b/StandardPda/MESApplication/Controllers/QC/ProductionLineController.cs
@@ -0,0 +1,86 @@
+using MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.service.QC;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+using SqlSugar;
+using System.Data;
+using System.Dynamic;
+
+
+namespace MESApplication.Controllers.QC;
+
+/// <summary>
+/// 浜х嚎鎻愪氦鎺ュ彛鎺у埗鍣�
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class ProductionLineController : ControllerBase
+{
+    /// <summary>
+    /// 鑾峰彇浜х嚎鎻愪氦椤甸潰鏁版嵁
+    /// </summary>
+    [HttpPost("GetProductionLinePage")]
+    public ResponseResult GetProductionLinePage([FromBody] ProductionLineQueryDto queryObj)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var (item, totalCount) = new ProductionLineService().GetProductionLinePage(queryObj);
+            resultInfos.tbBillList = item;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos,
+                TotalCount = totalCount
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    /// <summary>
+    /// 鎻愪氦妫�楠岋紙鐢熸垚棣栨鍗曪級
+    /// </summary>
+    [HttpPost("SubmitInspection")]
+    public ResponseResult SubmitInspection([FromBody] JObject data)
+    {
+        try
+        {
+            var gid = data["gid"]?.ToString();
+            var userNo = data["userNo"]?.ToString();
+
+            if (string.IsNullOrEmpty(gid) || string.IsNullOrEmpty(userNo))
+            {
+                return new ResponseResult
+                {
+                    status = 1,
+                    message = "鍙傛暟閿欒锛歡id鍜寀serNo涓嶈兘涓虹┖",
+                    data = null
+                };
+            }
+
+            var workOrderId = Convert.ToDecimal(gid);
+            var (success, message) = new ProductionLineService().SubmitInspection(workOrderId, userNo);
+
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = success;
+
+            return new ResponseResult
+            {
+                status = success ? 0 : 1,
+                message = message,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
+

--
Gitblit v1.9.3