From 17a83d6932d17686e65b563e339716cbcf7a5b4c Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期三, 26 三月 2025 16:23:26 +0800
Subject: [PATCH] 1.ipqc后台 2.新增样本已录入数 3.来料检优化

---
 entity/MesQaItemsDetectDetail5.cs          |    6 +
 service/QC/IpqcService.cs                  |  113 ++++++++++++++++++
 service/Warehouse/MesItemQtManager.cs      |    5 
 Controllers/Warehouse/MesXsckController.cs |    2 
 entity/VIpqcSj.cs                          |  160 ++++++++++++++++++++++++++
 Controllers/QC/IpqcController.cs           |   68 +++++++++++
 service/QC/LljService.cs                   |    2 
 7 files changed, 352 insertions(+), 4 deletions(-)

diff --git a/Controllers/QC/IpqcController.cs b/Controllers/QC/IpqcController.cs
new file mode 100644
index 0000000..c4f6370
--- /dev/null
+++ b/Controllers/QC/IpqcController.cs
@@ -0,0 +1,68 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.service.QC;
+using NewPdaSqlServer.util;
+using Newtonsoft.Json.Linq;
+
+namespace NewPdaSqlServer.Controllers.QC;
+
+[Route("api/[controller]")]
+[ApiController]
+public class IpqcController : ControllerBase
+{
+    IpqcService m = new IpqcService();
+
+    [HttpPost("getPageSj")]
+    public ResponseResult getPageSj([FromBody] XJPageResult queryObj)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var (item, totalCount) = m.getPageSj(queryObj);
+            var tbBillList =
+                resultInfos.tbBillList = item;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos,
+                TotalCount = totalCount
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    //getItems
+    [HttpPost("getJYItem")]
+    public ResponseResult getJYItem([FromBody] JObject data)
+    {
+        var id = data["id"]?.ToString();
+        var releaseNo = data["releaseNo"]?.ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                m.GetItems(releaseNo,
+                    id);
+            resultInfos.tbBillList = tbBillList;
+            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/Controllers/Warehouse/MesXsckController.cs b/Controllers/Warehouse/MesXsckController.cs
index 8d67113..bd252cf 100644
--- a/Controllers/Warehouse/MesXsckController.cs
+++ b/Controllers/Warehouse/MesXsckController.cs
@@ -217,7 +217,7 @@
         }
     }
 
-    #region 鐢熶骇琛ユ枡
+    #region 閿�鍞嚭搴�
 
     /// <summary>
     ///     鑾峰彇鐢熶骇琛ユ枡鍗曞彿鍒楄〃
diff --git a/entity/MesQaItemsDetectDetail5.cs b/entity/MesQaItemsDetectDetail5.cs
index e70cef6..f3c9c97 100644
--- a/entity/MesQaItemsDetectDetail5.cs
+++ b/entity/MesQaItemsDetectDetail5.cs
@@ -196,5 +196,11 @@
     [SugarColumn(ColumnName = "ybsl")]
     public int? Ybsl { get; set; }
 
+    /// <summary>
+    ///     鏍锋湰宸插綍鍏ユ暟
+    /// </summary>
+    [SugarColumn(IsIgnore = true)]
+    public int? YbslIn { get; set; }
+
     [SugarColumn(IsIgnore = true)] public int? Unqualified { get; set; }
 }
\ No newline at end of file
diff --git a/entity/VIpqcSj.cs b/entity/VIpqcSj.cs
new file mode 100644
index 0000000..2ad38a3
--- /dev/null
+++ b/entity/VIpqcSj.cs
@@ -0,0 +1,160 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Models;
+
+/// <summary>
+///     IPQC棣栨瑙嗗浘瀹炰綋绫�
+/// </summary>
+[SugarTable("V_IPQC_SJ")]
+public class VIpqcSj
+{
+    /// <summary>
+    ///     涓婚敭
+    /// </summary>
+    [SugarColumn(ColumnName = "guid")]
+    public string Guid { get; set; }
+
+    /// <summary>
+    ///     鎻愪氦鏍囪瘑
+    /// </summary>
+    [SugarColumn(ColumnName = "fsubmit")]
+    public int? FSubmit { get; set; }
+
+    /// <summary>
+    ///     淇敼鏍囧織
+    /// </summary>
+    [SugarColumn(ColumnName = "MODIFY1_FLAG")]
+    public string Modify1Flag { get; set; }
+
+    /// <summary>
+    ///     鎵规鍙�  --鍒拌揣鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "LOT_NO")]
+    public string LotNo { get; set; }
+
+    /// <summary>
+    ///     涓嶈壇澶勭悊鏂规硶
+    /// </summary>
+    [SugarColumn(ColumnName = "FNG_HANDLE")]
+    public string FnGHandle { get; set; }
+
+    /// <summary>
+    ///     鐗堟湰
+    /// </summary>
+    [SugarColumn(ColumnName = "FVERSION")]
+    public string FVersion { get; set; }
+
+    /// <summary>
+    ///     灏忔壒娆″彿,鐢ㄤ綔澶囨敞浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "LOT_NO1")]
+    public string LotNo1 { get; set; }
+
+    /// <summary>
+    ///     杞崲鏁伴噺
+    /// </summary>
+    [SugarColumn(ColumnName = "FCOVERT_QTY")]
+    public string FCovertQty { get; set; }
+
+    /// <summary>
+    ///     妫�楠岀粨鏋�
+    /// </summary>
+    [SugarColumn(ColumnName = "FCHECK_RESU")]
+    public string FCheckResu { get; set; }
+
+    /// <summary>
+    ///     妫�楠屽崟鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "RELEASE_NO")]
+    public string ReleaseNo { get; set; }
+
+    /// <summary>
+    ///     鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "DAA001")]
+    public string Daa001 { get; set; }
+
+    /// <summary>
+    ///     鏉ユ枡鏁伴噺(妫�楠屾暟閲�)
+    /// </summary>
+    [SugarColumn(ColumnName = "FBATCH_QTY")]
+    public string FBatchQty { get; set; }
+
+    /// <summary>
+    ///     鐗╂枡缂栫爜
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string ItemNo { get; set; }
+
+    /// <summary>
+    ///     妫�楠屼汉鍛�
+    /// </summary>
+    [SugarColumn(ColumnName = "FCHECK_BY")]
+    public string FCheckBy { get; set; }
+
+    /// <summary>
+    ///     涓嶈壇鎻忚堪
+    /// </summary>
+    [SugarColumn(ColumnName = "FNG_DESC")]
+    public string FnGDesc { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATE_BY")]
+    public string CreateBy { get; set; }
+
+    /// <summary>
+    ///     DAA013
+    /// </summary>
+    [SugarColumn(ColumnName = "DAA013")]
+    public string Daa013 { get; set; }
+
+    /// <summary>
+    ///     sj_xt
+    /// </summary>
+    [SugarColumn(ColumnName = "sj_xt")]
+    public string SjXt { get; set; }
+
+    /// <summary>
+    ///     閮ㄩ棬鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "departmentname")]
+    public string DepartmentName { get; set; }
+
+    /// <summary>
+    ///     鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "name")]
+    public string XtName { get; set; }
+
+    /// <summary>
+    ///     椤圭洰鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NAME")]
+    public string ItemName { get; set; }
+
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "remarks")]
+    public string Remarks { get; set; }
+
+    /// <summary>
+    ///     妫�鏌ユ棩鏈�
+    /// </summary>
+    [SugarColumn(ColumnName = "DATE_01")]
+    public string Date01 { get; set; }
+
+    /// <summary>
+    ///     浜у搧鍨嬪彿
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_MODEL")]
+    public string ItemModel { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATE_DATE")]
+    public string CreateDate { get; set; }
+}
\ No newline at end of file
diff --git a/service/QC/IpqcService.cs b/service/QC/IpqcService.cs
new file mode 100644
index 0000000..d238f10
--- /dev/null
+++ b/service/QC/IpqcService.cs
@@ -0,0 +1,113 @@
+锘縰sing MES.Service.Models;
+using Microsoft.IdentityModel.Tokens;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using SqlSugar;
+using static Azure.Core.HttpHeader;
+
+namespace NewPdaSqlServer.service.QC;
+
+public class IpqcService : RepositoryNoEntity
+{
+    public (List<VIpqcSj> item, int TotalCount) getPageSj(XJPageResult queryObj)
+    {
+        var parsedGuid = Guid.Empty;
+        if (!queryObj.id.IsNullOrEmpty())
+        {
+            var isValid = Guid.TryParse(queryObj.id, out parsedGuid);
+            if (!isValid)
+                throw new ApplicationException("GUID杞崲閿欒");
+        }
+
+
+        var totalCount = 0;
+
+        var pageList = Db.Queryable<VIpqcSj>()
+            .WhereIF(!string.IsNullOrWhiteSpace(queryObj.keyword), a =>
+                a.ItemNo.Contains(queryObj.keyword) ||
+                a.ItemName.Contains(queryObj.keyword) ||
+                a.Daa001.Contains(queryObj.keyword) ||
+                a.ReleaseNo.Contains(queryObj.keyword) ||
+                a.DepartmentName.Contains(queryObj.keyword )||
+                a.XtName.Contains(queryObj.keyword) 
+            )
+            .WhereIF(UtilityHelper.CheckGuid(parsedGuid),
+                a => a.Guid == parsedGuid.ToString() )
+            .Where(a => (a.FSubmit ?? 0) == 0)
+            .OrderByDescending(a => a.CreateDate)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (pageList, totalCount);
+    }
+
+    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo,
+        string? id)
+    {
+        var parsedGuid = Guid.Empty;
+
+        if (id != null)
+        {
+            var isValid = Guid.TryParse(id, out parsedGuid);
+            if (!isValid)
+                throw new ApplicationException("GUID杞崲閿欒");
+        }
+
+        var Ybsl_In = Db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(a => a.ParentGuid == parsedGuid)
+            .Count();
+
+        return Db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Left, a.Guid == b.ParentGuid))
+            .Where((a, b) => a.ReleaseNo == releaseNo)
+            .WhereIF(UtilityHelper.CheckGuid(parsedGuid),
+                (a, b) => a.Guid == parsedGuid)
+            .GroupBy((a, b) => new
+            {
+                a.Guid,
+                a.ParentGuid,
+                a.ReleaseNo,
+                a.FacLevel,
+                a.FcheckItem,
+                a.FcheckTool,
+                a.FdownAllow,
+                a.FcheckLevel,
+                a.Fstand,
+                a.FupAllow,
+                a.SampleSizeNo,
+                a.FspecRequ,
+                a.FreQty,
+                a.CheckQyt,
+                a.FcheckResu,
+                a.Order,
+                a.Ybsl,
+                a.YbslIn
+            }).Select((a, b) => new MesQaItemsDetectDetail5
+            {
+                Guid = a.Guid,
+                ParentGuid = a.ParentGuid,
+                ReleaseNo = a.ReleaseNo,
+                CheckQyt = a.CheckQyt,
+                FacLevel = a.FacLevel,
+                FcheckItem = a.FcheckItem,
+                FcheckTool = a.FcheckTool,
+                FdownAllow = a.FdownAllow,
+                FcheckLevel = a.FcheckLevel,
+                Fstand = a.Fstand,
+                FupAllow = a.FupAllow,
+                SampleSizeNo = a.SampleSizeNo,
+                FspecRequ = a.FspecRequ,
+                FreQty = a.FreQty,
+                Factory = "1000",
+                Company = "1000",
+                FenterQty = SqlFunc.AggregateCount(b.Guid),
+                FcheckResu = a.FcheckResu,
+                Order = a.Order,
+                Ybsl = a.Ybsl,
+                YbslIn = Ybsl_In,
+            }).OrderBy(a => a.Order)
+            .ToList();
+    }
+}
\ No newline at end of file
diff --git a/service/QC/LljService.cs b/service/QC/LljService.cs
index 4a0ae3a..4838160 100644
--- a/service/QC/LljService.cs
+++ b/service/QC/LljService.cs
@@ -730,7 +730,7 @@
     //鍒犻櫎鐗瑰緛鍊� 
     public int deleteDetail13(LLJDto dto)
     {
-        var withOracle = Db.Updateable<MesQaItemsDetectDetail13>()
+        var withOracle = Db.Deleteable<MesQaItemsDetectDetail13>()
                 .Where(s => s.Guid.ToString() == dto.id13)
                 .ExecuteCommand();
 
diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs
index fbac799..25399cd 100644
--- a/service/Warehouse/MesItemQtManager.cs
+++ b/service/Warehouse/MesItemQtManager.cs
@@ -270,7 +270,7 @@
             // 妫�鏌ユ槸鍚﹀凡瀛樺湪鍑哄簱鐗╂枡璁板綍
             var existingOutItem = Db.Queryable<MesInvItemOutItems>()
                 .Where(it =>
-                    it.ItemOutId == outId && it.ItemId == barcode.ItemId)
+                    it.ItemOutId == outId && it.ItemId == barcode.ItemId && it.AboutGuid == qtDetail.Guid)
                 .First();
 
             if (existingOutItem == null)
@@ -297,7 +297,8 @@
                     ItemId = !string.IsNullOrEmpty(qtDetail.ItemId)
                         ? long.Parse(qtDetail.ItemId)
                         : null,
-                    FType = 0
+                    FType = 0,
+                    AboutGuid = qtDetail.Guid
                     // Unit = qtDetail.Qd009
                 };
 

--
Gitblit v1.9.3