From 5648a24be5fa8b8981c399c09a5d5a306bae1d5e Mon Sep 17 00:00:00 2001
From: hao <1836460075@qq.com>
Date: 星期三, 16 七月 2025 08:33:57 +0800
Subject: [PATCH] 工单备料测试

---
 StandardInterface/MES.Service/Dto/service/GDBLQRRequest.cs          |   26 ++++++
 StandardInterface/MESApplication/Controllers/QC/GDBLQRController.cs |   77 +++++++++++++++++++
 StandardInterface/MES.Service/service/QC/GDBLQRService.cs           |   98 ++++++++++++++++++++++++
 StandardInterface/MES.Service/service/WomcaaManager.cs              |    1 
 StandardInterface/MESApplication/appsettings.json                   |    2 
 5 files changed, 203 insertions(+), 1 deletions(-)

diff --git a/StandardInterface/MES.Service/Dto/service/GDBLQRRequest.cs b/StandardInterface/MES.Service/Dto/service/GDBLQRRequest.cs
new file mode 100644
index 0000000..9597a49
--- /dev/null
+++ b/StandardInterface/MES.Service/Dto/service/GDBLQRRequest.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MES.Service.Dto.service
+{
+    public class GDBLQRConfirmRequest
+    {
+        public string MoNo { get; set; }
+        public string User { get; set; }
+    }
+
+    public class MoRequest
+    {
+        public string MoNo { get; set; }
+    }
+
+    public class BarcodeScanRequest
+    {
+        public string MoNo { get; set; }
+        public string Barcode { get; set; }
+    }
+}
+
diff --git a/StandardInterface/MES.Service/service/QC/GDBLQRService.cs b/StandardInterface/MES.Service/service/QC/GDBLQRService.cs
new file mode 100644
index 0000000..4ea073a
--- /dev/null
+++ b/StandardInterface/MES.Service/service/QC/GDBLQRService.cs
@@ -0,0 +1,98 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.util;
+using SqlSugar;
+using System.Data;
+
+namespace MES.Service.service.QC;
+
+public class GDBLQRService
+{
+    /// <summary>
+    /// 鑾峰彇宸ュ崟澶翠俊鎭拰澶囨枡鏄庣粏鍒楄〃锛堝弻娓告爣锛�
+    /// </summary>
+    public (dynamic Header, List<dynamic> Details, string Msg) GetMoFullInfo(string moNo)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var parameters = new List<SugarParameter>
+    {
+        new("pi_mo_no", moNo),
+        new("po_header", null) { Direction = ParameterDirection.Output },
+        new("po_details", null) { Direction = ParameterDirection.Output },
+        new("po_msg", null)
+        {
+            Direction = ParameterDirection.Output,
+            DbType = System.Data.DbType.String,
+            Size = 200
+        }
+    };
+
+        DataSet resultSets = db.Ado.UseStoredProcedure().GetDataSetAll("PRC_PREPARE_GET_MO_FULL_INFO", parameters);
+
+        var msg = parameters.First(p => p.ParameterName == "po_msg").Value?.ToString() ?? "OK";
+
+        if (msg != "OK")
+            return (null, null, msg); // 鉂� 鐘舵�佸紓甯革紝涓嶈繑鍥炰换浣曟暟鎹�
+
+        var header = resultSets.Tables[0].ToDynamic().FirstOrDefault();
+        var details = resultSets.Tables[1].ToDynamic();
+        return (header, details, msg);
+    }
+
+    /// <summary>
+    /// 鎵爜鏇存柊鐗╂枡鎵弿鏁伴噺
+    /// </summary>
+    public string ScanBarcode(string moNo, string barcode)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var parameters = new List<SugarParameter>
+        {
+            new("pi_mo_no", moNo),
+            new("pi_barcode", barcode),
+            new("po_msg", null)
+            {
+                Direction = ParameterDirection.Output,
+                DbType = System.Data.DbType.String, // 鉁� 鏄惧紡鎸囧畾 System.Data.DbType 閬垮厤姝т箟
+                Size = 200
+            }
+        };
+
+        db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_SCAN_BARCODE", parameters);
+
+        return parameters.First(p => p.ParameterName == "po_msg").Value?.ToString() ?? "";
+    }
+
+    /// <summary>
+    /// 宸ュ崟鐢熶骇纭锛堟墦鏍囩‘璁や汉鍜屾椂闂达級
+    /// </summary>
+    public void ConfirmPrepare(string moNo, string user)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var parameters = new List<SugarParameter>
+        {
+            new("pi_mo_no", moNo),
+            new("pi_user", user)
+        };
+
+        db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_PRODUCTION_CONFIRM", parameters);
+    }
+
+    /// <summary>
+    /// 宸ュ崟鍝佽川澶嶆牳纭锛堟墦鏍囩‘璁や汉鍜屾椂闂达級
+    /// </summary>
+    public void ReviewPrepare(string moNo, string user)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var parameters = new List<SugarParameter>
+        {
+            new("pi_mo_no", moNo),
+            new("pi_user", user)
+        };
+
+        db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_QUALITY_REVIEW", parameters);
+    }
+}
diff --git a/StandardInterface/MES.Service/service/WomcaaManager.cs b/StandardInterface/MES.Service/service/WomcaaManager.cs
index 2c03d6f..c1584c4 100644
--- a/StandardInterface/MES.Service/service/WomcaaManager.cs
+++ b/StandardInterface/MES.Service/service/WomcaaManager.cs
@@ -294,6 +294,7 @@
               //  Db.Deleteable<Womcab>().Where(s => s.Erpid == womcab.Erpid).ExecuteCommand();
                 womcab.Id = entity.Id;
             }
+     
             womcabList.Add(womcab);
         }
 
diff --git a/StandardInterface/MESApplication/Controllers/QC/GDBLQRController.cs b/StandardInterface/MESApplication/Controllers/QC/GDBLQRController.cs
new file mode 100644
index 0000000..4d3a222
--- /dev/null
+++ b/StandardInterface/MESApplication/Controllers/QC/GDBLQRController.cs
@@ -0,0 +1,77 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using MES.Service.Dto.service;
+using MES.Service.service.QC;
+using MES.Service.util;
+
+namespace MESApplication.Controllers.QC;
+
+[Route("api/[controller]")]
+[ApiController]
+public class GDBLQRController : ControllerBase
+{
+    private readonly GDBLQRService _service = new();
+
+    [HttpPost("GetMoFullInfo")]
+    public ResponseResult GetMoFullInfo([FromBody] MoRequest req)
+    {
+        try
+        {
+            var (header, details, msg) = _service.GetMoFullInfo(req.MoNo);
+
+            if (msg != "OK")
+                return new ResponseResult { status = -1, message = msg };
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = new { header, details }
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    [HttpPost("ScanBarcode")]
+    public ResponseResult ScanBarcode([FromBody] BarcodeScanRequest req)
+    {
+        try
+        {
+            var result = _service.ScanBarcode(req.MoNo, req.Barcode);
+            return new ResponseResult { status = 0, message = result };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    [HttpPost("Confirm")]
+    public ResponseResult Confirm([FromBody] GDBLQRConfirmRequest req)
+    {
+        try
+        {
+            _service.ConfirmPrepare(req.MoNo, req.User);
+            return new ResponseResult { status = 0, message = "鐢熶骇纭鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    [HttpPost("Review")]
+    public ResponseResult Review([FromBody] GDBLQRConfirmRequest req)
+    {
+        try
+        {
+            _service.ReviewPrepare(req.MoNo, req.User);
+            return new ResponseResult { status = 0, message = "鍝佽川澶嶆牳鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
diff --git a/StandardInterface/MESApplication/appsettings.json b/StandardInterface/MESApplication/appsettings.json
index 59a3601..28cfc2a 100644
--- a/StandardInterface/MESApplication/appsettings.json
+++ b/StandardInterface/MESApplication/appsettings.json
@@ -10,6 +10,6 @@
   "AppSettings": {
     "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
     "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal",
-    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = test_dev; Password=hmprd"
+    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = hm_prd; Password=hmprd"
   }
 }

--
Gitblit v1.9.3