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