From 2b81edc873cc53d774104e4be2c26562cbe6f6ba Mon Sep 17 00:00:00 2001
From: xwt <2740516069@qq.com>
Date: 星期三, 19 十一月 2025 13:29:24 +0800
Subject: [PATCH] 超期复检
---
StandardInterface/MESApplication/Controllers/QC/CqjController.cs | 400 ++++++++++++++++
StandardInterface/MES.Service/Modes/LtsCqj.cs | 124 ++++
StandardInterface/MES.Service/service/QC/CqjService.cs | 577 +++++++++++++++++++++++
StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail12.cs | 85 +++
StandardInterface/MES.Service/Modes/MesQsImage.cs | 4
StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail5.cs | 157 ++++++
StandardInterface/MES.Service/Modes/MesCqItemsDetect01.cs | 127 +++++
StandardInterface/MESApplication/appsettings.json | 2
8 files changed, 1,473 insertions(+), 3 deletions(-)
diff --git a/StandardInterface/MES.Service/Modes/LtsCqj.cs b/StandardInterface/MES.Service/Modes/LtsCqj.cs
new file mode 100644
index 0000000..78da457
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/LtsCqj.cs
@@ -0,0 +1,124 @@
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// 瓒呮湡妫�楠岃鍥� V_CQJ
+/// </summary>
+[SugarTable("V_CQJ")]
+public class LtsCqj
+{
+ /// <summary>
+ /// ID
+ /// </summary>
+ [SugarColumn(ColumnName = "ID")]
+ public decimal? Id { get; set; }
+
+ /// <summary>
+ /// 妫�楠屽崟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "RELEASE_NO")]
+ public string? ReleaseNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡ID
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_ID")]
+ public decimal? ItemId { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_NO")]
+ public string? ItemNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_NAME")]
+ public string? ItemName { get; set; }
+
+ /// <summary>
+ /// 瑙勬牸鍨嬪彿
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_MODEL")]
+ public string? ItemModel { get; set; }
+
+ /// <summary>
+ /// 閫佹鎵规
+ /// </summary>
+ [SugarColumn(ColumnName = "LOT_NO")]
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 鎻愪氦鏍囪瘑
+ /// </summary>
+ [SugarColumn(ColumnName = "FSUBMIT")]
+ public decimal? Fsubmit { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "CREATE_DATE")]
+ public DateTime? CreateDate { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "CJR")]
+ public string? Cjr { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀粨鏋�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_RESU")]
+ public string? FcheckResu { get; set; }
+
+ /// <summary>
+ /// 澶囨敞淇℃伅
+ /// </summary>
+ [SugarColumn(ColumnName = "LOT_NO1")]
+ public string? LotNo1 { get; set; }
+
+ /// <summary>
+ /// 涓嶈壇鎻忚堪
+ /// </summary>
+ [SugarColumn(ColumnName = "FNG_DESC")]
+ public string? FngDesc { get; set; }
+
+ /// <summary>
+ /// 閫佹鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "FBATCH_QTY")]
+ public decimal? FbatchQty { get; set; }
+
+ /// <summary>
+ /// 鎻愪氦浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "TJR")]
+ public string? Tjr { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ [SugarColumn(ColumnName = "FNUMBER")]
+ public string? Fnumber { get; set; }
+
+ /// <summary>
+ /// 閫佹浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "SJR")]
+ public string? Sjr { get; set; }
+
+ /// <summary>
+ /// 閫佹鍗曞彿
+ /// </summary>
+ [SugarColumn(ColumnName = "DECLARATION_NO")]
+ public string? DeclarationNo { get; set; }
+
+ /// <summary>
+ /// 妫�楠岄」鐩暟閲忥紙闈炴暟鎹簱瀛楁锛岀敤浜庡墠绔樉绀猴級
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public int? InspectionItemCount { get; set; }
+}
diff --git a/StandardInterface/MES.Service/Modes/MesCqItemsDetect01.cs b/StandardInterface/MES.Service/Modes/MesCqItemsDetect01.cs
new file mode 100644
index 0000000..a903c8a
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/MesCqItemsDetect01.cs
@@ -0,0 +1,127 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// 瓒呮湡妫�楠屽崟涓昏〃 MES_CQ_ITEMS_DETECT_01
+/// </summary>
+[Table("MES_CQ_ITEMS_DETECT_01")]
+[SugarTable("MES_CQ_ITEMS_DETECT_01")]
+public class MesCqItemsDetect01
+{
+ /// <summary>
+ /// 涓婚敭ID
+ /// </summary>
+ [Column("ID")]
+ [SugarColumn(IsPrimaryKey = true, OracleSequenceName = "SEQ_CQ_ID", ColumnName = "ID")]
+ public decimal? Id { get; set; }
+
+ /// <summary>
+ /// 妫�楠屽崟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "RELEASE_NO")]
+ public string? ReleaseNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡ID
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_ID")]
+ public decimal? ItemId { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_NO")]
+ public string? ItemNo { get; set; }
+
+ /// <summary>
+ /// 閫佹鎵规
+ /// </summary>
+ [SugarColumn(ColumnName = "LOT_NO")]
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 鎻愪氦鏍囪瘑
+ /// </summary>
+ [SugarColumn(ColumnName = "FSUBMIT")]
+ public decimal? Fsubmit { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀粨鏋�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_RESU")]
+ public string? FcheckResu { get; set; }
+
+ /// <summary>
+ /// 妫�楠屾棩鏈�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_DATE")]
+ public DateTime? FcheckDate { get; set; }
+
+ /// <summary>
+ /// 妫�楠屼汉
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_BY")]
+ public string? FcheckBy { get; set; }
+
+ /// <summary>
+ /// 澶囨敞淇℃伅
+ /// </summary>
+ [SugarColumn(ColumnName = "LOT_NO1")]
+ public string? LotNo1 { get; set; }
+
+ /// <summary>
+ /// 涓嶈壇鎻忚堪
+ /// </summary>
+ [SugarColumn(ColumnName = "FNG_DESC")]
+ public string? FngDesc { get; set; }
+
+ /// <summary>
+ /// 閫佹鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "FBATCH_QTY")]
+ public decimal? FbatchQty { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ [SugarColumn(ColumnName = "ITEM_UNIT")]
+ public decimal? ItemUnit { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "CREATE_BY")]
+ public string? CreateBy { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "CREATE_DATE")]
+ public DateTime? CreateDate { get; set; }
+
+ /// <summary>
+ /// 鏇存柊浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+ public string? LastupdateBy { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+ public DateTime? LastupdateDate { get; set; }
+
+ /// <summary>
+ /// 宸ュ巶
+ /// </summary>
+ [SugarColumn(ColumnName = "FACTORY")]
+ public string? Factory { get; set; }
+
+ /// <summary>
+ /// 鍏徃
+ /// </summary>
+ [SugarColumn(ColumnName = "COMPANY")]
+ public string? Company { get; set; }
+}
diff --git a/StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail12.cs b/StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail12.cs
new file mode 100644
index 0000000..69324aa
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail12.cs
@@ -0,0 +1,85 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// 瓒呮湡妫�楠岀粨鏋滆〃 MES_CQ_ITEMS_DETECT_DETAIL12
+/// </summary>
+[Table("MES_CQ_ITEMS_DETECT_DETAIL12")]
+[SugarTable("MES_CQ_ITEMS_DETECT_DETAIL12")]
+public class MesCqItemsDetectDetail12
+{
+ /// <summary>
+ /// 涓婚敭ID
+ /// </summary>
+ [Column("ID")]
+ [SugarColumn(IsPrimaryKey = true, OracleSequenceName = "SEQ_CQ_ID", ColumnName = "ID")]
+ public decimal? Id { get; set; }
+
+ /// <summary>
+ /// 涓昏〃ID锛堝叧鑱擬ES_CQ_ITEMS_DETECT_DETAIL5锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "MAIN_ID")]
+ public decimal? MainId { get; set; }
+
+ /// <summary>
+ /// 妫�楠屽崟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "RELEASE_NO")]
+ public string? ReleaseNo { get; set; }
+
+ /// <summary>
+ /// 鏍囧噯鍊�
+ /// </summary>
+ [SugarColumn(ColumnName = "FSTAND")]
+ public string? Fstand { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀粨鏋�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_RESU")]
+ public string? FcheckResu { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "CREATE_BY")]
+ public string? CreateBy { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃ユ湡
+ /// </summary>
+ [SugarColumn(ColumnName = "CREATE_DATE")]
+ public DateTime? CreateDate { get; set; }
+
+ /// <summary>
+ /// 鏇存柊浜�
+ /// </summary>
+ [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+ public string? LastupdateBy { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃ユ湡锛堟暟鎹簱涓笉瀛樺湪姝ゅ瓧娈碉級
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public DateTime? LastupdateDate { get; set; }
+
+ /// <summary>
+ /// 宸ュ巶
+ /// </summary>
+ [SugarColumn(ColumnName = "FACTORY")]
+ public string? Factory { get; set; }
+
+ /// <summary>
+ /// 鍏徃
+ /// </summary>
+ [SugarColumn(ColumnName = "COMPANY")]
+ public string? Company { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺锛堢敤浜庢壒閲忔彃鍏ワ級
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public int? count { get; set; }
+}
diff --git a/StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail5.cs b/StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail5.cs
new file mode 100644
index 0000000..6ed6ab0
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/MesCqItemsDetectDetail5.cs
@@ -0,0 +1,157 @@
+using System.ComponentModel.DataAnnotations.Schema;
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// 瓒呮湡妫�楠岄」鐩〃 MES_CQ_ITEMS_DETECT_DETAIL5
+/// </summary>
+[Table("MES_CQ_ITEMS_DETECT_DETAIL5")]
+[SugarTable("MES_CQ_ITEMS_DETECT_DETAIL5")]
+public class MesCqItemsDetectDetail5
+{
+ /// <summary>
+ /// 涓婚敭ID
+ /// </summary>
+ [Column("ID")]
+ [SugarColumn(IsPrimaryKey = true, OracleSequenceName = "SEQ_CQ_ID", ColumnName = "ID")]
+ public decimal? Id { get; set; }
+
+ /// <summary>
+ /// 妫�楠屽崟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "RELEASE_NO")]
+ public string? ReleaseNo { get; set; }
+
+ /// <summary>
+ /// 鎺ュ彈姘村噯
+ /// </summary>
+ [SugarColumn(ColumnName = "FAC_LEVEL")]
+ public string? FacLevel { get; set; }
+
+ /// <summary>
+ /// 妫�楠岄」鐩�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_ITEM")]
+ public string? FcheckItem { get; set; }
+
+ /// <summary>
+ /// 妫�楠屽伐鍏�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_TOOL")]
+ public string? FcheckTool { get; set; }
+
+ /// <summary>
+ /// 涓嬮檺
+ /// </summary>
+ [SugarColumn(ColumnName = "FDOWN_ALLOW")]
+ public string? FdownAllow { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀瓑绾�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_LEVEL")]
+ public string? FcheckLevel { get; set; }
+
+ /// <summary>
+ /// 鏍囧噯鍊�
+ /// </summary>
+ [SugarColumn(ColumnName = "FSTAND")]
+ public string? Fstand { get; set; }
+
+ /// <summary>
+ /// 涓婇檺
+ /// </summary>
+ [SugarColumn(ColumnName = "FUP_ALLOW")]
+ public string? FupAllow { get; set; }
+
+ /// <summary>
+ /// 鏍锋湰閲�
+ /// </summary>
+ [SugarColumn(ColumnName = "SAMPLE_SIZE_NO")]
+ public string? SampleSizeNo { get; set; }
+
+ /// <summary>
+ /// 瑙勬牸瑕佹眰
+ /// </summary>
+ [SugarColumn(ColumnName = "FSPEC_REQU")]
+ public string? FspecRequ { get; set; }
+
+ /// <summary>
+ /// 鎷掓敹鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "FRE_QTY")]
+ public decimal? FreQty { get; set; }
+
+ /// <summary>
+ /// 搴旀鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "CHECK_QYT")]
+ public decimal? CheckQyt { get; set; }
+
+ /// <summary>
+ /// 妫�楠岀粨鏋�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_RESU")]
+ public string? FcheckResu { get; set; }
+
+ /// <summary>
+ /// 妫�楠岄」鐩弿杩�
+ /// </summary>
+ [SugarColumn(ColumnName = "FCHECK_ITEM_DESC")]
+ public string? FcheckItemDesc { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ [SugarColumn(ColumnName = "FUNIT")]
+ public string? Funit { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [SugarColumn(ColumnName = "MEOM")]
+ public string? Meom { get; set; }
+
+ /// <summary>
+ /// 宸ュ巶
+ /// </summary>
+ [SugarColumn(ColumnName = "FACTORY")]
+ public string? Factory { get; set; }
+
+ /// <summary>
+ /// 鍏徃
+ /// </summary>
+ [SugarColumn(ColumnName = "COMPANY")]
+ public string? Company { get; set; }
+
+ /// <summary>
+ /// 宸叉鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "FENTER_QTY")]
+ public int? FenterQty { get; set; }
+
+ /// <summary>
+ /// 涓嶈壇鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "FNG_QTY")]
+ public int? FngQty { get; set; }
+
+ /// <summary>
+ /// AC鏁帮紙鎺ユ敹鏁伴噺锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "FAC_QTY")]
+ public int? FacQty { get; set; }
+
+ /// <summary>
+ /// 鍫嗙┐鍙凤紙瓒呮湡妫�楠屼笉浣跨敤锛�
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public string? Dnum { get; set; }
+
+ /// <summary>
+ /// 涓嶅悎鏍兼暟锛堥潪鏁版嵁搴撳瓧娈碉級
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ public int? Unqualified { get; set; }
+}
diff --git a/StandardInterface/MES.Service/Modes/MesQsImage.cs b/StandardInterface/MES.Service/Modes/MesQsImage.cs
index 3f627b2..beea629 100644
--- a/StandardInterface/MES.Service/Modes/MesQsImage.cs
+++ b/StandardInterface/MES.Service/Modes/MesQsImage.cs
@@ -36,11 +36,11 @@
public byte[]? ImageData { get; set; }
/// <summary>
- /// 1涓洪妫�锛�2涓哄贰妫�锛�3涓哄叆搴撴
+ /// 1涓洪妫�锛�2涓哄贰妫�锛�3涓哄叆搴撴锛�4涓烘潵鏂欐楠岋紝5涓鸿秴鏈熸楠�
/// </summary>
[Column("QS_TYPE")]
[SugarColumn(ColumnName = "QS_TYPE")] //鐢ㄤ簬SqlSugar
- [StringLength(1, ErrorMessage = "1涓洪妫�锛�2涓哄贰妫�锛�3涓哄叆搴撴闀垮害涓嶈兘瓒呭嚭1")]
+ [StringLength(1, ErrorMessage = "妫�楠岀被鍨嬮暱搴︿笉鑳借秴鍑�1")]
public string? QsType { get; set; }
/// <summary>
diff --git a/StandardInterface/MES.Service/service/QC/CqjService.cs b/StandardInterface/MES.Service/service/QC/CqjService.cs
new file mode 100644
index 0000000..4ba40f3
--- /dev/null
+++ b/StandardInterface/MES.Service/service/QC/CqjService.cs
@@ -0,0 +1,577 @@
+using System.Data;
+using MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+
+namespace MES.Service.service.QC;
+
+public class CqjService
+{
+ /// <summary>
+ /// 鑾峰彇瓒呮湡妫�楠屽垪琛紙鍒嗛〉锛�
+ /// </summary>
+ /// <param name="queryObj">鏌ヨ瀵硅薄</param>
+ /// <returns>鍒嗛〉鏁版嵁</returns>
+ public (List<LtsCqj> item, int TotalCount) GetPage(XJPageResult queryObj)
+ {
+ if (string.IsNullOrEmpty(queryObj.createUser)) return ([], 0);
+
+ var db = SqlSugarHelper.GetInstance();
+ var id = Convert.ToDecimal(queryObj.id);
+ int totalCount = 0;
+
+ // 鏌ヨ瓒呮湡妫�楠屽垪琛�
+ var pageList = db.Queryable<LtsCqj>()
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ "鏈畬鎴�".Equals(queryObj.result),
+ a => a.FcheckResu == null)
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ !"鏈畬鎴�".Equals(queryObj.result),
+ a => a.FcheckResu != null)
+ .WhereIF(id > 0, a => a.Id == id)
+ // 鎼滅储鏉′欢
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 1, // 鐗╂枡缂栧彿鎼滅储
+ a => a.ItemNo != null && a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 2, // 鐗╂枡鍚嶇О鎼滅储
+ a => a.ItemName != null && a.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 3, // 閫佹鎵规鎼滅储
+ a => a.LotNo != null && a.LotNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 4, // 閫佹鍗曞彿鎼滅储
+ a => a.DeclarationNo != null && a.DeclarationNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 5, // 妫�楠屽崟鍙锋悳绱�
+ a => a.ReleaseNo != null && a.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 6, // 鐗╂枡瑙勬牸鎼滅储
+ a => a.ItemModel != null && a.ItemModel.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .Select(a => new LtsCqj
+ {
+ Id = a.Id,
+ ReleaseNo = a.ReleaseNo,
+ ItemId = a.ItemId,
+ ItemNo = a.ItemNo,
+ ItemName = a.ItemName,
+ ItemModel = a.ItemModel,
+ LotNo = a.LotNo,
+ Fsubmit = a.Fsubmit,
+ CreateDate = a.CreateDate,
+ Cjr = a.Cjr,
+ FcheckResu = a.FcheckResu,
+ LotNo1 = a.LotNo1,
+ FngDesc = a.FngDesc,
+ FbatchQty = a.FbatchQty,
+ Tjr = a.Tjr,
+ Fnumber = a.Fnumber,
+ Sjr = a.Sjr,
+ DeclarationNo = a.DeclarationNo
+ })
+ .OrderBy(a => a.CreateDate, OrderByType.Desc)
+ .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+ // 鎵归噺鑾峰彇妫�楠岄」鐩暟閲�
+ if (pageList.Any())
+ {
+ var releaseNos = pageList.Select(x => x.ReleaseNo).Distinct().ToList();
+
+ foreach (var item in pageList)
+ {
+ var count = db.Queryable<MesCqItemsDetectDetail5>()
+ .Where(x => x.ReleaseNo == item.ReleaseNo)
+ .Count();
+ item.InspectionItemCount = count;
+ }
+ }
+
+ // 璁$畻鎬绘暟
+ int allDataQuery = db.Queryable<LtsCqj>()
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ "鏈畬鎴�".Equals(queryObj.result),
+ a => a.FcheckResu == null)
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+ !"鏈畬鎴�".Equals(queryObj.result),
+ a => a.FcheckResu != null)
+ .WhereIF(id > 0, a => a.Id == id)
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 1,
+ a => a.ItemNo != null && a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 2,
+ a => a.ItemName != null && a.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 3,
+ a => a.LotNo != null && a.LotNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 4,
+ a => a.DeclarationNo != null && a.DeclarationNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 5,
+ a => a.ReleaseNo != null && a.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue) && queryObj.selectedIndex == 6,
+ a => a.ItemModel != null && a.ItemModel.ToLower().Contains(queryObj.SearchValue.ToLower()))
+ .Select(a => a.ReleaseNo)
+ .Distinct()
+ .Count();
+
+ return (pageList, allDataQuery);
+ }
+
+ /// <summary>
+ /// 璋冪敤瀛樺偍杩囩▼锛岄噸鏂拌幏鍙栨楠岄」鐩�
+ /// </summary>
+ /// <param name="itemNo">鐗╂枡缂栧彿</param>
+ /// <param name="quantity">鏁伴噺</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ public string[] SetItems(decimal itemNo, decimal quantity, string releaseNo)
+ {
+ // 瀹氫箟杈撳嚭鍙傛暟
+ var outputResult = new SugarParameter("PO_RESULT", null,
+ System.Data.DbType.Int32, ParameterDirection.Output, 4000);
+
+ var outputMessage = new SugarParameter("PO_TEXT", null,
+ System.Data.DbType.String, ParameterDirection.Output, 4000);
+
+ // 瀹氫箟杈撳叆鍙傛暟
+ var parameters = new List<SugarParameter>
+ {
+ new("P_RELEASE_NO", releaseNo, System.Data.DbType.String, ParameterDirection.Input),
+ new("P_ITEM_ID", itemNo, System.Data.DbType.Decimal, ParameterDirection.Input),
+ outputResult,
+ outputMessage
+ };
+
+ var db = SqlSugarHelper.GetInstance();
+
+ // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+ db.Ado.ExecuteCommand(
+ "BEGIN PRC_CQ_ITEM_INSERT_BTN(:P_RELEASE_NO, :P_ITEM_ID, :PO_RESULT, :PO_TEXT); END;",
+ parameters.ToArray());
+
+ // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+ var resultValue = outputResult.Value?.ToString();
+ var messageValue = outputMessage.Value?.ToString();
+
+ string[] msg = new string[2];
+ msg[0] = resultValue;
+ msg[1] = messageValue;
+ return msg;
+ }
+
+ /// <summary>
+ /// 鑾峰彇妫�楠岄」鐩垪琛�
+ /// </summary>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <param name="id">椤圭洰ID</param>
+ /// <returns>妫�楠岄」鐩垪琛�</returns>
+ public List<MesCqItemsDetectDetail5> GetItems(string? releaseNo, decimal? id)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ return db.Queryable<MesCqItemsDetectDetail5, MesCqItemsDetectDetail12>(
+ (a, b) => new JoinQueryInfos(JoinType.Left, a.Id == b.MainId))
+ .Where((a, b) => a.ReleaseNo == releaseNo)
+ .GroupBy((a, b) => new
+ {
+ a.Id,
+ 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.FcheckItemDesc,
+ a.Funit,
+ a.Meom,
+ a.FngQty, // 娣诲姞涓嶅悎鏍兼暟
+ a.FacQty // 娣诲姞AC鏁�
+ }).Select((a, b) => new MesCqItemsDetectDetail5
+ {
+ Id = a.Id,
+ 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.Id), // 宸插綍鍏ユ暟閲�
+ FngQty = a.FngQty, // 涓嶅悎鏍兼暟锛堜粠鏁版嵁搴撹鍙栵紝鐢� updateDetail5 鏇存柊锛�
+ FacQty = a.FacQty, // AC鏁�
+ FcheckResu = a.FcheckResu,
+ FcheckItemDesc = a.FspecRequ,
+ Funit = a.Funit,
+ Meom = a.Meom
+ })
+ .OrderBy(a => SqlFunc.IIF(a.Fstand != null, 0, 1))
+ .OrderBy(a => a.FcheckItem, OrderByType.Desc)
+ .ToList();
+ }
+
+ /// <summary>
+ /// 鍒犻櫎瓒呮湡妫�楠屽崟
+ /// </summary>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int RemoveCqj(string? releaseNo)
+ {
+ var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ var commit = 0;
+ // 鍒犻櫎涓昏〃
+ commit += db.Deleteable<MesCqItemsDetect01>()
+ .Where(s => s.ReleaseNo == releaseNo)
+ .ExecuteCommand();
+ // 鍒犻櫎瀛愯〃
+ commit += db.Deleteable<MesCqItemsDetectDetail5>()
+ .Where(s => s.ReleaseNo == releaseNo)
+ .ExecuteCommand();
+ // 鍒犻櫎瀛欒〃
+ commit += db.Deleteable<MesCqItemsDetectDetail12>()
+ .Where(s => s.ReleaseNo == releaseNo)
+ .ExecuteCommand();
+ return commit;
+ });
+
+ return withOracle;
+ }
+
+ /// <summary>
+ /// 淇濆瓨涓嶈壇鎻忚堪鍒颁富琛�
+ /// </summary>
+ /// <param name="gid">涓昏〃ID</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <param name="fngDesc">涓嶈壇鎻忚堪</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int SaveRemarksGid(decimal gid, string? releaseNo, string? fngDesc)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Updateable<MesCqItemsDetect01>()
+ .SetColumns(it => new MesCqItemsDetect01
+ {
+ FngDesc = fngDesc // 浣跨敤FNG_DESC瀛楁瀛樺偍涓嶈壇鎻忚堪
+ })
+ .Where(it => it.Id == gid && it.ReleaseNo == releaseNo)
+ .ExecuteCommand();
+ }
+
+ /// <summary>
+ /// 淇濆瓨澶囨敞鍒颁富琛�
+ /// </summary>
+ /// <param name="gid">涓昏〃ID</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <param name="lotNo1">澶囨敞鍐呭</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int SaveLotNo1(decimal gid, string? releaseNo, string? lotNo1)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Updateable<MesCqItemsDetect01>()
+ .SetColumns(it => new MesCqItemsDetect01
+ {
+ LotNo1 = lotNo1 // 浣跨敤LOT_NO1瀛楁瀛樺偍澶囨敞
+ })
+ .Where(it => it.Id == gid && it.ReleaseNo == releaseNo)
+ .ExecuteCommand();
+ }
+
+ /// <summary>
+ /// 淇濆瓨涓嶈壇鎻忚堪鍒板瓙琛�
+ /// </summary>
+ /// <param name="pid">瀛愯〃ID</param>
+ /// <param name="funit">涓嶈壇鎻忚堪</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int SaveRemarksPid(decimal pid, string? funit)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Updateable<MesCqItemsDetectDetail5>()
+ .SetColumns(it => new MesCqItemsDetectDetail5
+ {
+ Funit = funit
+ })
+ .Where(it => it.Id == pid)
+ .ExecuteCommand();
+ }
+
+ /// <summary>
+ /// 淇濆瓨澶囨敞鍒板瓙琛�
+ /// </summary>
+ /// <param name="pid">瀛愯〃ID</param>
+ /// <param name="meom">澶囨敞</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int SaveMeom(decimal pid, string? meom)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Updateable<MesCqItemsDetectDetail5>()
+ .SetColumns(it => new MesCqItemsDetectDetail5
+ {
+ Meom = meom
+ })
+ .Where(it => it.Id == pid)
+ .ExecuteCommand();
+ }
+
+ /// <summary>
+ /// 鏂板妫�楠岃鎯呰褰曪紙鎵归噺锛�
+ /// </summary>
+ /// <param name="detail">妫�楠岃鎯呭璞�</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int SetQSItemDetail(MesCqItemsDetectDetail12 detail)
+ {
+ var dbd = SqlSugarHelper.GetInstance();
+ var oracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ List<MesCqItemsDetectDetail12> result = new();
+ for (var i = 0; i < detail.count; i++)
+ {
+ var item = new MesCqItemsDetectDetail12();
+ item.MainId = detail.MainId;
+ item.ReleaseNo = detail.ReleaseNo;
+ item.Fstand = detail.Fstand;
+ item.FcheckResu = detail.FcheckResu;
+ item.CreateBy = detail.LastupdateBy;
+ item.CreateDate = DateTime.Now;
+ item.Factory = "1000";
+ item.Company = "1000";
+ result.Add(item);
+ }
+
+ return db.Insertable(result).ExecuteCommand();
+ });
+
+ detail.CreateBy = detail.LastupdateBy;
+
+ updateDetail5(detail);
+ autoResult(detail);
+
+ return oracle;
+ }
+
+ //鏇存柊妫�楠屾槑缁嗗凡妫�銆佷笉鍚堟牸鏁伴噺
+ private int updateDetail5(MesCqItemsDetectDetail12 detail)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠屾暟閲�
+ var count = db.Queryable<MesCqItemsDetectDetail12>()
+ .Where(s => s.MainId == detail.MainId).Count();
+
+ //鑾峰彇涓嶅悎鏍兼暟
+ var countNo = db.Queryable<MesCqItemsDetectDetail12>()
+ .Where(s => s.MainId == detail.MainId && s.Fstand == "脳").Count();
+
+ //鏇存柊妫�楠屾槑缁嗗凡妫�鏁伴噺
+ var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<MesCqItemsDetectDetail5>()
+ .SetColumns(s => s.FenterQty == count)
+ .SetColumns(s => s.FngQty == countNo)
+ .Where(s => s.Id == detail.MainId)
+ .ExecuteCommand();
+ });
+
+ return withOracle;
+ }
+
+ private int autoResult(MesCqItemsDetectDetail12 detail)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒
+ var QsItemOqcItem = db.Queryable<MesCqItemsDetectDetail5>()
+ .Single(s => s.Id == detail.MainId);
+
+ if (QsItemOqcItem == null) return 0;
+
+ //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠岀粨鏋�
+ var count = db.Queryable<MesCqItemsDetectDetail12>()
+ .Where(s => s.MainId == detail.MainId).Count();
+
+ updateDetail5(detail);
+ var result = "";
+
+ //妫�楠屽疄闄呯粨鏋滀笉绛変簬搴旇妫�楠岀殑涓暟鏃剁洿鎺ラ��鍑�
+ if (QsItemOqcItem.CheckQyt != count) return 0;
+
+ //鍚堟牸鐨勬湁澶氬皯涓�
+ var passCount = db.Queryable<MesCqItemsDetectDetail12>()
+ .Where(s => s.MainId == detail.MainId && s.Fstand == "鈭�").Count();
+ //涓嶅悎鏍肩殑鏈夊灏戜釜
+ var noCount = db.Queryable<MesCqItemsDetectDetail12>()
+ .Where(s => s.MainId == detail.MainId && s.Fstand == "脳").Count();
+
+ if (count == passCount)
+ result = "鍚堟牸";
+ else if (noCount >= QsItemOqcItem.FreQty)
+ result = "涓嶅悎鏍�";
+ var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
+ db =>
+ {
+ var commit = 0;
+ commit += db.Updateable<MesCqItemsDetectDetail5>()
+ .SetColumns(s => s.FcheckResu == result)
+ .SetColumns(s => s.FenterQty == count)
+ .Where(s => s.Id == detail.MainId)
+ .ExecuteCommand();
+
+ return commit;
+ });
+
+ return useTransactionWithOracle;
+ }
+
+ /// <summary>
+ /// 鑾峰彇妫�楠岃鎯呰褰曞垪琛�
+ /// </summary>
+ /// <param name="id">涓绘楠岄」鐩甀D</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <returns>妫�楠岃鎯呭垪琛�</returns>
+ public List<MesCqItemsDetectDetail12> GetQSItemDetail(decimal id, string? releaseNo)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ return db.Queryable<MesCqItemsDetectDetail12>()
+ .Where(x => x.MainId == id && x.ReleaseNo == releaseNo)
+ .OrderBy(x => x.CreateDate, OrderByType.Asc)
+ .Select(x => new MesCqItemsDetectDetail12
+ {
+ Id = x.Id,
+ MainId = x.MainId,
+ ReleaseNo = x.ReleaseNo,
+ Fstand = x.Fstand,
+ FcheckResu = x.FcheckResu,
+ CreateBy = x.CreateBy,
+ CreateDate = x.CreateDate,
+ LastupdateBy = x.LastupdateBy,
+ Factory = x.Factory,
+ Company = x.Company
+ // 涓嶅寘鍚� LastupdateDate 瀛楁
+ })
+ .ToList();
+ }
+
+ /// <summary>
+ /// 鏇存柊妫�楠岃鎯呰褰�
+ /// </summary>
+ /// <param name="id">璇︽儏璁板綍ID</param>
+ /// <param name="mainId">涓绘楠岄」鐩甀D</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <param name="fstand">妫�楠屾爣鍑�</param>
+ /// <param name="fcheckResu">妫�楠岀粨鏋�</param>
+ /// <param name="updateBy">鏇存柊浜�</param>
+ /// <returns>褰卞搷琛屾暟</returns>
+ public int UpdateQSItemDetail(decimal id, decimal mainId, string? releaseNo, string? fstand, string? fcheckResu, string? updateBy)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ // 鍏堟洿鏂版楠岃鎯呰褰�
+ var updateResult = db.Updateable<MesCqItemsDetectDetail12>()
+ .SetColumns(it => new MesCqItemsDetectDetail12
+ {
+ Fstand = fstand,
+ FcheckResu = fcheckResu,
+ LastupdateBy = updateBy
+ // 涓嶈缃� LastupdateDate锛屽洜涓烘暟鎹簱涓笉瀛樺湪姝ゅ瓧娈�
+ })
+ .Where(it => it.Id == id && it.MainId == mainId && it.ReleaseNo == releaseNo)
+ .ExecuteCommand();
+
+ // 鏋勯�� detail 瀵硅薄鐢ㄤ簬璋冪敤 autoResult
+ var detail = new MesCqItemsDetectDetail12
+ {
+ Id = id,
+ MainId = mainId,
+ ReleaseNo = releaseNo,
+ Fstand = fstand,
+ FcheckResu = fcheckResu,
+ LastupdateBy = updateBy,
+ CreateBy = updateBy
+ };
+
+ // 鏇存柊宸叉鏁伴噺鍜屼笉鍚堟牸鏁伴噺锛堝湪鏇存柊璁板綍涔嬪悗鎵ц锛岀‘淇濊兘鏌ヨ鍒版渶鏂扮殑 Fstand锛�
+ updateDetail5(detail);
+
+ // 鑷姩鍒ゅ畾妫�楠岀粨鏋�
+ autoResult(detail);
+
+ return updateResult;
+ }
+
+ /// <summary>
+ /// 妫�楠屾彁浜�
+ /// </summary>
+ /// <param name="userNo">鐢ㄦ埛璐﹀彿</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ public string[] SubmitInspection(string? userNo, string? releaseNo)
+ {
+ try
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ // 鑾峰彇妫�楠屽崟淇℃伅锛堝彧鏌ヨ闇�瑕佺殑瀛楁锛岄伩鍏嶅疄浣撴槧灏勯敊璇級
+ var fngDesc = db.Queryable<MesCqItemsDetect01>()
+ .Where(x => x.ReleaseNo == releaseNo)
+ .Select(x => x.FngDesc)
+ .First();
+
+ // 妫�鏌ユ楠屽崟鏄惁瀛樺湪
+ var exists = db.Queryable<MesCqItemsDetect01>()
+ .Where(x => x.ReleaseNo == releaseNo)
+ .Any();
+
+ if (!exists)
+ {
+ return new[] { "1", "妫�楠屽崟涓嶅瓨鍦�" };
+ }
+
+ // 瀹氫箟杈撳嚭鍙傛暟
+ var outputResult = new SugarParameter("o_Result", null,
+ System.Data.DbType.Int32, ParameterDirection.Output, 4000);
+
+ var outputMessage = new SugarParameter("o_Msg", null,
+ System.Data.DbType.String, ParameterDirection.Output, 4000);
+
+ // 瀹氫箟杈撳叆鍙傛暟锛堝弬鏁伴『搴忓繀椤讳笌瀛樺偍杩囩▼瀹氫箟瀹屽叏涓�鑷达級
+ var parameters = new List<SugarParameter>
+ {
+ new("PI_FACTORY", "1000", System.Data.DbType.String, ParameterDirection.Input, 50),
+ new("PI_COMPANY", "1000", System.Data.DbType.String, ParameterDirection.Input, 50),
+ new("p_Release_No", releaseNo ?? "", System.Data.DbType.String, ParameterDirection.Input, 50),
+ new("p_badReason", "", System.Data.DbType.String, ParameterDirection.Input, 200), // 绌哄瓧绗︿覆鑰岄潪NULL
+ new("p_iqcStatus", "", System.Data.DbType.String, ParameterDirection.Input, 200), // 绌哄瓧绗︿覆鑰岄潪NULL
+ new("p_workShop", "", System.Data.DbType.String, ParameterDirection.Input, 200), // 绌哄瓧绗︿覆鑰岄潪NULL
+ new("p_remark", fngDesc ?? "", System.Data.DbType.String, ParameterDirection.Input, 4000), // 涓嶈壇鎻忚堪
+ new("p_User", userNo ?? "", System.Data.DbType.String, ParameterDirection.Input, 50),
+ outputResult,
+ outputMessage
+ };
+
+ // 璋冪敤瀛樺偍杩囩▼
+ db.Ado.ExecuteCommand(
+ "BEGIN Prc_Mes_CQJ_Qa_Submit(:PI_FACTORY, :PI_COMPANY, :p_Release_No, :p_badReason, :p_iqcStatus, :p_workShop, :p_remark, :p_User, :o_Result, :o_Msg); END;",
+ parameters.ToArray());
+
+ // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+ var resultValue = outputResult.Value?.ToString() ?? "1";
+ var messageValue = outputMessage.Value?.ToString() ?? "鎻愪氦澶辫触";
+
+ return new[] { resultValue, messageValue };
+ }
+ catch (Exception ex)
+ {
+ return new[] { "1", $"鎻愪氦寮傚父锛歿ex.Message}" };
+ }
+ }
+}
diff --git a/StandardInterface/MESApplication/Controllers/QC/CqjController.cs b/StandardInterface/MESApplication/Controllers/QC/CqjController.cs
new file mode 100644
index 0000000..2e4b4d0
--- /dev/null
+++ b/StandardInterface/MESApplication/Controllers/QC/CqjController.cs
@@ -0,0 +1,400 @@
+using System.Dynamic;
+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;
+
+namespace MESApplication.Controllers.QC;
+
+/// <summary>
+/// 瓒呮湡妫�楠屾帶鍒跺櫒
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class CqjController : ControllerBase
+{
+ /// <summary>
+ /// 鑾峰彇瓒呮湡妫�楠屽垪琛紙鍒嗛〉锛�
+ /// </summary>
+ /// <param name="queryObj">鏌ヨ鍙傛暟</param>
+ /// <returns>鍒嗛〉鏁版嵁</returns>
+ [HttpPost("getPage")]
+ public ResponseResult getPage([FromBody] XJPageResult queryObj)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var (item, totalCount) = new CqjService().GetPage(queryObj);
+ resultInfos.tbBillList = item;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos,
+ TotalCount = totalCount
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 璋冪敤瀛樺偍杩囩▼锛岃幏鍙栨楠岄」鐩�
+ /// </summary>
+ /// <param name="data">鍖呭惈itemNo銆乹uantity銆乺eleaseNo</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("setJYItem")]
+ public ResponseResult setJYItem([FromBody] JObject data)
+ {
+ var itemNo = Convert.ToDecimal(data["itemNo"].ToString());
+ var quantity = Convert.ToDecimal(data["quantity"].ToString());
+ var releaseNo = data["releaseNo"].ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var result = new CqjService().SetItems(itemNo, quantity, releaseNo);
+ resultInfos.tbBillList = result;
+
+ // 鏍规嵁瀛樺偍杩囩▼杩斿洖缁撴灉鍒ゆ柇鏄惁鎴愬姛
+ var resultCode = result[0];
+ var resultMessage = result[1];
+
+ if (resultCode == "0")
+ {
+ return new ResponseResult
+ {
+ status = 0,
+ message = resultMessage,
+ data = resultInfos
+ };
+ }
+ else
+ {
+ return new ResponseResult
+ {
+ status = 1,
+ message = resultMessage,
+ data = resultInfos
+ };
+ }
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇妫�楠岄」鐩垪琛�
+ /// </summary>
+ /// <param name="data">鍖呭惈releaseNo銆乮d</param>
+ /// <returns>妫�楠岄」鐩垪琛�</returns>
+ [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 = new CqjService().GetItems(releaseNo,
+ string.IsNullOrEmpty(id) ? null : Convert.ToDecimal(id));
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鍒犻櫎瓒呮湡妫�楠屽崟
+ /// </summary>
+ /// <param name="data">鍖呭惈releaseNo</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("removeCqj")]
+ public ResponseResult removeCqj([FromBody] JObject data)
+ {
+ var releaseNo = data["releaseNo"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var tbBillList = new CqjService().RemoveCqj(releaseNo);
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 淇濆瓨涓嶈壇鎻忚堪鍒颁富琛�
+ /// </summary>
+ /// <param name="data">鍖呭惈gid銆乺eleaseNo銆乫ngDesc</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("saveRemarksGid")]
+ public ResponseResult saveRemarksGid([FromBody] JObject data)
+ {
+ var gid = Convert.ToDecimal(data["gid"].ToString());
+ var releaseNo = data["releaseNo"]?.ToString();
+ var fngDesc = data["fngDesc"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var tbBillList = new CqjService().SaveRemarksGid(gid, releaseNo, fngDesc);
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 淇濆瓨澶囨敞鍒颁富琛�
+ /// </summary>
+ /// <param name="data">鍖呭惈gid銆乺eleaseNo銆乴otNo1</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("saveLotNo1")]
+ public ResponseResult saveLotNo1([FromBody] JObject data)
+ {
+ var gid = Convert.ToDecimal(data["gid"].ToString());
+ var releaseNo = data["releaseNo"]?.ToString();
+ var lotNo1 = data["lotNo1"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var tbBillList = new CqjService().SaveLotNo1(gid, releaseNo, lotNo1);
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 淇濆瓨涓嶈壇鎻忚堪鍒板瓙琛�
+ /// </summary>
+ /// <param name="data">鍖呭惈pid銆乫unit</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("saveRemarksPid")]
+ public ResponseResult saveRemarksPid([FromBody] JObject data)
+ {
+ var pid = Convert.ToDecimal(data["pid"].ToString());
+ var funit = data["funit"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var tbBillList = new CqjService().SaveRemarksPid(pid, funit);
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 淇濆瓨澶囨敞鍒板瓙琛�
+ /// </summary>
+ /// <param name="data">鍖呭惈pid銆乵eom</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("saveMeom")]
+ public ResponseResult saveMeom([FromBody] JObject data)
+ {
+ var pid = Convert.ToDecimal(data["pid"].ToString());
+ var meom = data["meom"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var tbBillList = new CqjService().SaveMeom(pid, meom);
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鏂板/鏌ヨ妫�楠岃鎯呰褰�
+ /// </summary>
+ /// <param name="data">鍖呭惈mainId銆乺eleaseNo銆乫stand銆乫checkResu銆丩astupdateBy銆乧ount锛堟柊澧炴椂锛夋垨id銆乺eleaseNo锛堟煡璇㈡椂锛�</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("SetQSItemDetail")]
+ public ResponseResult SetQSItemDetail([FromBody] JObject data)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+
+ // 鍒ゆ柇鏄柊澧炶繕鏄煡璇�
+ if (data.ContainsKey("fcheckResu") && data["fcheckResu"] != null)
+ {
+ // 鏂板鎿嶄綔 - 鎸夌収LLJ妯″紡锛屼娇鐢ㄥ璞℃帴鏀跺弬鏁�
+ var detail = new MesCqItemsDetectDetail12
+ {
+ MainId = Convert.ToDecimal(data["mainId"].ToString()),
+ ReleaseNo = data["releaseNo"]?.ToString(),
+ Fstand = data["fstand"]?.ToString(),
+ FcheckResu = data["fcheckResu"]?.ToString(),
+ LastupdateBy = data["LastupdateBy"]?.ToString(), // 浣跨敤LastupdateBy鑰屼笉createBy
+ count = data.ContainsKey("count") && data["count"] != null
+ ? Convert.ToInt32(data["count"].ToString())
+ : 1 // 榛樿涓�1
+ };
+
+ var tbBillList = new CqjService().SetQSItemDetail(detail);
+ resultInfos.tbBillList = tbBillList;
+ }
+ else
+ {
+ // 鏌ヨ鎿嶄綔
+ var id = Convert.ToDecimal(data["id"].ToString());
+ var releaseNo = data["releaseNo"]?.ToString();
+
+ var tbBillList = new CqjService().GetQSItemDetail(id, releaseNo);
+ resultInfos.tbBillList = tbBillList;
+ }
+
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鏇存柊妫�楠岃鎯呰褰�
+ /// </summary>
+ /// <param name="data">鍖呭惈id銆乵ainId銆乺eleaseNo銆乫stand銆乫checkResu銆乽pdateBy</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("UpdateQSItemDetail")]
+ public ResponseResult UpdateQSItemDetail([FromBody] JObject data)
+ {
+ var id = Convert.ToDecimal(data["id"].ToString());
+ var mainId = Convert.ToDecimal(data["mainId"].ToString());
+ var releaseNo = data["releaseNo"]?.ToString();
+ var fstand = data["fstand"]?.ToString();
+ var fcheckResu = data["fcheckResu"]?.ToString();
+ var updateBy = data["updateBy"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var tbBillList = new CqjService().UpdateQSItemDetail(id, mainId, releaseNo, fstand, fcheckResu, updateBy);
+ resultInfos.tbBillList = tbBillList;
+ return new ResponseResult
+ {
+ status = 0,
+ message = "OK",
+ data = resultInfos
+ };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 妫�楠屾彁浜�
+ /// </summary>
+ /// <param name="data">鍖呭惈userNo銆乺eleaseNo</param>
+ /// <returns>鎵ц缁撴灉</returns>
+ [HttpPost("submitInspection")]
+ public ResponseResult submitInspection([FromBody] JObject data)
+ {
+ var userNo = data["userNo"]?.ToString();
+ var releaseNo = data["releaseNo"]?.ToString();
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var result = new CqjService().SubmitInspection(userNo, releaseNo);
+ resultInfos.tbBillList = result;
+
+ // 鏍规嵁瀛樺偍杩囩▼杩斿洖缁撴灉鍒ゆ柇鏄惁鎴愬姛
+ var resultCode = result[0];
+ var resultMessage = result[1];
+
+ if (resultCode == "0")
+ {
+ return new ResponseResult
+ {
+ status = 0,
+ message = resultMessage,
+ data = resultInfos
+ };
+ }
+ else
+ {
+ return new ResponseResult
+ {
+ status = 1,
+ message = resultMessage,
+ data = resultInfos
+ };
+ }
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 澶勭悊OPTIONS璇锋眰锛堢敤浜庤法鍩熼妫�锛�
+ /// </summary>
+ [HttpOptions("{**any}")]
+ public IActionResult HandleOptions()
+ {
+ return Ok();
+ }
+}
diff --git a/StandardInterface/MESApplication/appsettings.json b/StandardInterface/MESApplication/appsettings.json
index 28cfc2a..59a3601 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 = hm_prd; 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 = test_dev; Password=hmprd"
}
}
--
Gitblit v1.9.3