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