From 2914a3a86ce976e5b397ee41bd1553e45fe68831 Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期三, 12 十一月 2025 23:36:10 +0800
Subject: [PATCH] 产线提交代码上传
---
StandardPda/MES.Service/service/QC/SJService.cs | 774 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 774 insertions(+), 0 deletions(-)
diff --git a/StandardPda/MES.Service/service/QC/SJService.cs b/StandardPda/MES.Service/service/QC/SJService.cs
new file mode 100644
index 0000000..2e2c364
--- /dev/null
+++ b/StandardPda/MES.Service/service/QC/SJService.cs
@@ -0,0 +1,774 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+using System.Data;
+
+namespace MES.Service.service.QC;
+
+public class SJService
+{
+ private readonly BaseService _baseService = new();
+
+ //鑾峰彇鏈�澶у崟鍙�
+ public string getMaxBillNo()
+ {
+ var db = SqlSugarHelper.GetInstance();
+ var date = DateTime.Now.ToString("yyyy-MM-dd");
+ var sql =
+ "select max(BILL_NO) from QS_ITEM_IPI_REQ where to_char(CREATE_TIME,'yyyy-mm-dd') = '" +
+ date + "'";
+
+ var maxBillNo = db.Ado.SqlQuerySingle<string>(sql);
+
+ var number = "0001";
+ if (maxBillNo != null)
+ {
+ maxBillNo = maxBillNo.Substring(12);
+ var no = Convert.ToInt32(maxBillNo);
+ no++;
+ number = no.ToString().PadLeft(4, '0');
+ }
+
+ return "SJN" + date.Replace("-", "") + number;
+ }
+
+ //鑾峰彇鎵�鏈夋暟鎹垎椤�
+ public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult queryObj)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ string[]? lineNo = null;
+
+ // if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
+ // lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
+
+ var totalCount = 0;
+
+ var data = db.Queryable<SJPageResult>()
+ .WhereIF(lineNo != null && lineNo.Length > 0,
+ a => lineNo.Contains(a.line))
+ .WhereIF(queryObj.Id != null, a => a.Id == queryObj.Id)
+ .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo),
+ a => a.BillNo == queryObj.BillNo)
+ // .WhereIF(
+ // StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+ // "鏈畬鎴�".Equals(queryObj.Result),
+ // a => a.Result == queryObj.Result && (a.FSubmit == 0 || a.FSubmit == null))
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+ "鏈畬鎴�".Equals(queryObj.Result),
+ a => a.FSubmit == 0 || a.FSubmit == null)
+ // .WhereIF(
+ // StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+ // !"鏈畬鎴�".Equals(queryObj.Result),
+ // a => a.Result != "鏈畬鎴�" && a.FSubmit == 1)
+ .WhereIF(
+ StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+ !"鏈畬鎴�".Equals(queryObj.Result),
+ a => a.FSubmit == 1)
+ .OrderBy(a => a.BillNo, OrderByType.Desc)
+ .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+ return (data, totalCount);
+ }
+
+
+ //SetQSItem
+ // public List<QsItemIpiItem> SetQSItems(string itemNo)
+ // {
+ // var db = SqlSugarHelper.GetInstance();
+ // return db
+ // .Queryable<MoidToItem, MesQualityStandard>((a, b) =>
+ // new JoinQueryInfos(JoinType.Inner, a.MoidNum == b.MoidNum))
+ // .Where((a, b) => b.QsType == "1" && a.Fsubmit == 1 && a.ItemNo == itemNo).Select(
+ // (a, b) => new QsItemIpiItem
+ // {
+ // ProjName = b.ProjName,
+ // ItemMod = b.ItemMod,
+ // InspectionMethod = b.InspectionMethod,
+ // UsingInstruments = b.UsingInstruments,
+ // LevelNum = SqlFunc.IsNull(
+ // SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
+ // b.InspectionLevel),
+ // MaxValue = b.MaxValue,
+ // StandardValue = b.StandardValue,
+ // MinValue = b.MinValue,
+ // Notes = b.Notes,
+ // FcheckLevel = b.FcheckLevel,
+ // FacLevel = b.FacLevel,
+ // QsCode = b.QsCode,
+ // QsName = b.QsName,
+ // result = "鏈娴�"
+ // }).ToList();
+ // }
+ public List<QsItemIpiItem> SetQSItems(string itemNo)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ var count = db.Queryable<MesQa>().Where(s => s.QsType == "1"
+ && s.ItemNo == itemNo && s.Fsubmit == 1).Count();
+
+ if (count <= 0) return [];
+
+ return db
+ .Queryable<MesQualityStandard>()
+ .Where(b => b.QsType == "1" && b.ItemNo == itemNo).Select(b =>
+ new QsItemIpiItem
+ {
+ ProjName = b.ProjName,
+ ItemMod = b.ItemMod,
+ InspectionMethod = b.InspectionMethod,
+ UsingInstruments = b.UsingInstruments,
+ LevelNum = SqlFunc.IsNull(
+ SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
+ b.InspectionLevel),
+ MaxValue = b.MaxValue,
+ StandardValue = b.StandardValue,
+ MinValue = b.MinValue,
+ Notes = b.Notes,
+ FcheckLevel = b.FcheckLevel,
+ FacLevel = b.FacLevel,
+ QsCode = b.QsCode,
+ QsName = b.QsName,
+ Picture = b.Picture,
+ Picturename = b.Picturename,
+ result = "鏈娴�",
+ isCheck = 0
+ }).ToList();
+ }
+
+ public List<QsItemIpiItem> getQSItems(decimal? pid, decimal? id)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ var qsItemIpiItems = db
+ .Queryable<QsItemIpiItem>()
+ .WhereIF(pid > 0, a => a.Pid == pid)
+ .WhereIF(id > 0, a => a.Id == id).ToList();
+
+ var array = qsItemIpiItems.Select(s => s.Id).ToArray();
+ var qsItemIpiItemDetails = db.Queryable<QsItemIpiItemDetail>()
+ .Where(s => array.Contains(s.Pid))
+ .GroupBy(s => s.Pid)
+ .Select(s => new
+ {
+ s.Pid,
+ count = SqlFunc.AggregateCount(s.Id)
+ }).ToList();
+
+ qsItemIpiItems.ForEach(s =>
+ {
+ var find = qsItemIpiItemDetails.Find(a => s.Id == a.Pid);
+ if (find == null)
+ {
+ s.isCheck = 0;
+ s.result = "鏈畬鎴�";
+ }
+ else
+ {
+ s.isCheck = find.count;
+ if (find.count == s.LevelNum && s.IsPass == 1)
+ s.result = "鍚堟牸";
+ else if (find.count == s.LevelNum && s.IsPass == 0)
+ s.result = "涓嶅悎鏍�";
+ else
+ s.result = "鏈畬鎴�";
+ }
+ });
+
+ //浣跨敤linq琛ㄨ揪寮忚繃婊ゅ嚭鍥剧墖id涓嶄负绌虹殑鏁版嵁
+ var itemIpiItems =
+ qsItemIpiItems.Where(s => s.Picture is { Length: > 0 })
+ .ToList();
+ if (itemIpiItems.Count > 0)
+ itemIpiItems.ForEach(s =>
+ {
+ var qsItemIpiItem = qsItemIpiItems.Find(t => t.Id == s.Id);
+ //灏嗗瓧鑺傛暟缁勮浆鎹负Base64缂栫爜鐨勫瓧绗︿覆
+ qsItemIpiItem.imageData = Convert.ToBase64String(s.Picture);
+ });
+
+ //鎺掑簭锛屾湭瀹屾垚鐨勬帓鍦ㄥ墠闈�
+ qsItemIpiItems = qsItemIpiItems.OrderBy(s => s.isCheck).ToList();
+
+ return qsItemIpiItems;
+ }
+
+ public QsItem Save(QsItem item)
+ {
+ var qsItemIpiReq = item.From;
+ var qsItemIpiItems = item.Items;
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ qsItemIpiReq.StatusDate = DateTime.Now;
+ var pid = db.Insertable(qsItemIpiReq)
+ .ExecuteReturnIdentity();
+ qsItemIpiReq.Id = pid;
+
+ item.gid = pid;
+
+ qsItemIpiItems.ForEach(s => s.Pid = pid);
+
+ return db.Insertable(qsItemIpiItems)
+ .ExecuteCommand();
+ });
+ item.Items = getQSItems(qsItemIpiReq.Id, null);
+
+ //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸
+ item.Items.ForEach(s =>
+ {
+ if (s.MaxValue != null || s.StandardValue != null ||
+ s.MinValue != null) return;
+ var detail = new QsItemIpiItemDetail();
+ detail.Pid = s.Id;
+ detail.Gid = item.gid;
+ detail.Fstand = "鈭�";
+ detail.FcheckResu = "1";
+ detail.UpdateBy = item.From.StatusUser;
+ detail.count = (int?)s.LevelNum;
+ SetQSItemDetail(detail);
+ });
+
+ item.Items = getQSItems(qsItemIpiReq.Id, null);
+ var sjPageResult = new SJPageResult
+ { Id = item.From.Id, Limit = 1, PageIndex = 1 };
+ var pageResult = getPage(sjPageResult);
+ item.Result = pageResult.item[0];
+
+ return item;
+ }
+
+ public QsItem SaveItem(QsItem item)
+ {
+ var qsItemIpiItems = item.Items;
+
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ // 1. 鍒犻櫎鏃х殑瀛愰」
+ db.Deleteable<QsItemIpiItem>()
+ .Where(s => s.Pid == item.gid)
+ .ExecuteCommand();
+
+ qsItemIpiItems.ForEach(s => s.Pid = item.gid);
+ db.Insertable(qsItemIpiItems).ExecuteCommand();
+
+ // 2. 鏌ユ壘 MesQa 瀵瑰簲涓昏〃ID锛堥�氳繃 item.ItemNo锛�
+ var mesQa = db.Queryable<MesQa>()
+ .Where(q => q.ItemNo == item.ItemNo)
+ .Select(q => new { q.Id })
+ .First();
+
+ if (mesQa == null || mesQa.Id == null)
+ {
+ throw new Exception($"鏈壘鍒扮墿鏂欑紪鍙� {item.ItemNo} 瀵瑰簲鐨� MesQa 涓昏〃璁板綍銆�");
+ }
+
+ var mesQaId = mesQa.Id;
+ var mid = item.gid;
+
+ // 3. 鍚屾鎵爜妫�楠岄」鐩〃锛圡ES_SJ_SCAN_ITEM_CK锛�
+ db.Deleteable<MES_SJ_SCAN_ITEM_CK>()
+ .Where(s => s.MID == mid)
+ .ExecuteCommand();
+
+ var scanItems = db.Queryable<MES_SJ_SCAN_ITEM>()
+ .Where(s => s.MID == mesQaId)
+ .Select(s => new MES_SJ_SCAN_ITEM_CK
+ {
+ SCAN_ITEM = s.SCAN_ITEM,
+ SN_NO = null,
+ MID = (long)mid,
+ CREATE_DATE = DateTime.Now
+ })
+ .ToList();
+
+ foreach (var ck in scanItems)
+ {
+ ck.ID = (long)db.Ado.GetDecimal("SELECT SEQ_MES_SJ_SCAN_ITEM_CK.NEXTVAL FROM DUAL");
+ }
+
+ if (scanItems.Any())
+ {
+ db.Insertable(scanItems).ExecuteCommand();
+ }
+
+ // 4. 涓�鑷存�ч」鐩悓姝ラ�昏緫锛圡ES_IQC_CONSISTENCY_SJ_CK锛�
+ // -------------------------------------------------------------
+ // 鍒犻櫎鏃ф暟鎹�
+ db.Ado.ExecuteCommand(
+ "DELETE FROM MES_IQC_CONSISTENCY_SJ_CK WHERE pid = :IMGID",
+ new { IMGID = item.gid.ToString() });
+
+ // 鏌ヨ涓�鑷存�ч」鐩簮鏁版嵁
+ var consistencyItems = db.SqlQueryable<MES_IQC_CONSISTENCY_SJ_CK>(@"
+ SELECT
+ a.ID AS PID,
+ b.ItemName,
+ b.ItemMode,
+ b.SuppName,
+ a.Item_No AS ImgID,
+ 0 AS IsChack,
+ b.MULTI_SELECT
+ FROM MES_QA a
+ LEFT JOIN MES_IQC_CONSISTENCY_SJ_DT b ON a.ID = b.PID
+ WHERE a.FSUBMIT = 1
+ AND a.QS_TYPE = 1
+ AND a.ITEM_NO = :ITEM_NO
+ AND b.ItemName IS NOT NULL
+ ").AddParameters(new { ITEM_NO = item.ItemNo }).ToList();
+
+ foreach (var ci in consistencyItems)
+ {
+ db.Ado.ExecuteCommand(@"
+ INSERT INTO MES_IQC_CONSISTENCY_SJ_CK
+ (ID, PID, ITEMNAME, ITEMMODE, SUPPNAME, IMGID, ISCHACK, MULTI_SELECT)
+ VALUES (
+ F_GETSEQNEXTVALUE('MES_IQC_CONSISTENCY_SJ_CK'),
+ :PID,
+ :ITEMNAME,
+ :ITEMMODE,
+ :SUPPNAME,
+ :IMGID,
+ :ISCHACK,
+ :MULTI_SELECT
+ )",
+ new
+ {
+ PID = item.gid,
+ ITEMNAME = ci.ItemName,
+ ITEMMODE = ci.ItemMode,
+ SUPPNAME = ci.SuppName,
+ IMGID = ci.ImgID,
+ ISCHACK = ci.ISCHACK,
+ MULTI_SELECT = ci.MULTI_SELECT
+ });
+ }
+
+ return 1;
+ });
+
+ // 5. 閲嶆柊鍔犺浇妫�楠岄」鐩苟澶勭悊鑷姩鍚堟牸椤�
+ item.Items = getQSItems(item.gid, null);
+
+ item.Items.ForEach(s =>
+ {
+ if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null) return;
+
+ var detail = new QsItemIpiItemDetail
+ {
+ Pid = s.Id,
+ Gid = item.gid,
+ Fstand = "鈭�",
+ FcheckResu = "1",
+ UpdateBy = item.StatusUser,
+ count = (int?)s.LevelNum
+ };
+
+ SetQSItemDetail(detail);
+ });
+
+ item.Items = getQSItems(item.gid, null);
+
+ return item;
+ }
+
+ public int SetQSItemDetail(QsItemIpiItemDetail detail)
+ {
+ var oracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ List<QsItemIpiItemDetail> result = new();
+ for (var i = 0; i < detail.count; i++)
+ {
+ var item = new QsItemIpiItemDetail();
+ item.Gid = detail.Gid;
+ item.Pid = detail.Pid;
+ item.Fstand = detail.Fstand;
+ item.FcheckResu = detail.FcheckResu;
+ item.CreateBy = detail.UpdateBy;
+ item.CreateDate = DateTime.Now;
+ result.Add(item);
+ }
+
+ return db.Insertable(result).ExecuteCommand();
+ });
+
+ detail.CreateBy = detail.UpdateBy;
+
+ autoResult(detail);
+
+ return oracle;
+ }
+
+ public List<QsItemIpiItemDetail> getQSItemDetail(decimal? pid, decimal? gid)
+ {
+ var db = SqlSugarHelper.GetInstance();
+ return db.Queryable<QsItemIpiItemDetail>()
+ .Where(s => s.Pid == pid)
+ .WhereIF(gid > 0, s => s.Gid == gid)
+ .ToList();
+ }
+
+
+ //鑷姩鍒ゅ畾鏄惁鍚堟牸
+ private int autoResult(QsItemIpiItemDetail detail)
+ {
+ var db = SqlSugarHelper.GetInstance();
+
+ // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒
+ var qsItemIpiItem = db.Queryable<QsItemIpiItem>()
+ .Single(s => s.Id == detail.Pid);
+
+ if (qsItemIpiItem == null) return 0;
+
+ var count = db.Queryable<QsItemIpiItemDetail>()
+ .Where(s => s.Pid == detail.Pid).Count();
+
+
+ var result = 0;
+
+ if (qsItemIpiItem.LevelNum != count) return 0;
+
+ var passCount = db.Queryable<QsItemIpiItemDetail>()
+ .Where(s => s.Pid == detail.Pid && s.Fstand == "鈭�").Count();
+
+ if (count == passCount) result = 1;
+
+ var useTransactionWithOracle =
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ var commit = 0;
+ commit += db.Updateable<QsItemIpiItem>()
+ .SetColumns(s => s.IsPass == result)
+ .Where(s => s.Id == detail.Pid)
+ .ExecuteCommand();
+ return commit;
+ });
+
+
+ //鑷姩鍒ゅ畾鏄惁鍚堟牸
+ //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩悊璁轰釜鏁�
+ var sum = db.Queryable<QsItemIpiItem>()
+ .Where(s => s.Pid == detail.Gid).Sum(it => it.LevelNum);
+ if (sum == null || sum == 0) return 1;
+
+ //鑾峰彇妫�楠屽崟涓嬬殑妫�楠岄」鐩疄闄呬釜鏁�
+ var icount = db.Queryable<QsItemIpiItemDetail>()
+ .Where(s => s.Gid == detail.Gid).Count();
+
+ if (icount == 0) return 1;
+
+ //瀹為檯涓暟绛変簬鐞嗚涓暟鏃跺妫�楠屽崟杩涜鍒ゅ畾
+ if (sum == icount)
+ {
+ result = 0;
+
+ //鑾峰彇杩欎釜妫�楠屽崟涓嬬殑鎵�鏈夊悎鏍肩殑妫�楠岀粨鏋�
+ passCount = db.Queryable<QsItemIpiItemDetail>()
+ .Where(s => s.Gid == detail.Gid && s.Fstand == "鈭�").Count();
+
+ //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸
+ if (icount == passCount) result = 1;
+
+ useTransactionWithOracle +=
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsItemIpiReq>()
+ .SetColumns(s => s.IsPass == result)
+ .SetColumns(s => s.StatusUser == detail.CreateBy)
+ .SetColumns(s => s.CompleteTime == DateTime.Now)
+ .Where(s => s.Id == detail.Gid)
+ .ExecuteCommand();
+ });
+ }
+
+ return useTransactionWithOracle;
+ }
+
+ public int UpdateQSItemDetail(QsItemIpiItemDetail detail)
+ {
+ var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsItemIpiItemDetail>()
+ .SetColumns(s => s.UpdateBy == detail.UpdateBy)
+ .SetColumns(s => s.UpdateDate == DateTime.Now)
+ .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand),
+ s => s.Fstand == detail.Fstand)
+ .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu),
+ s => s.FcheckResu == detail.FcheckResu)
+ .Where(s => s.Id == detail.Id)
+ .ExecuteCommand();
+ });
+
+ detail.CreateBy = detail.UpdateBy;
+
+ withOracle += autoResult(detail);
+
+ return withOracle;
+ }
+
+
+ //涓昏〃淇敼澶囨敞瀛楁
+ public int saveRemarksGid(QsItem dto)
+ {
+ return SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsItemIpiReq>()
+ .SetColumns(it =>
+ it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+ .Where(it => it.Id == dto.gid)
+ .ExecuteCommand();
+ });
+ }
+
+ //瀛愯〃淇敼澶囨敞瀛楁
+ public int saveRemarksPid(QsItem dto)
+ {
+ return SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsItemIpiItem>()
+ .SetColumns(it =>
+ it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+ .Where(it => it.Id == dto.pid)
+ .ExecuteCommand();
+ });
+ }
+
+ //瀛欒〃淇敼澶囨敞瀛楁
+ public int saveRemarksById(QsItem dto)
+ {
+ return SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsItemIpiItemDetail>()
+ .SetColumns(it =>
+ it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+ .Where(it => it.Id == dto.id)
+ .ExecuteCommand();
+ });
+ }
+
+ public int removeXJ(decimal? id)
+ {
+ var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ var commit = 0;
+ //鍒犻櫎涓昏〃
+ commit += db.Deleteable<QsItemIpiReq>().Where(s => s.Id == id)
+ .ExecuteCommand();
+ //鍒犻櫎瀛愯〃
+ commit += db.Deleteable<QsItemIpiItem>().Where(s => s.Pid == id)
+ .ExecuteCommand();
+ //鍒犻櫎瀛欒〃
+ commit += db.Deleteable<QsItemIpiItemDetail>()
+ .Where(s => s.Gid == id)
+ .ExecuteCommand();
+ return commit;
+ });
+
+ return withOracle;
+ }
+
+ public bool SJQaSubmit(LLJDto rkjDto)
+ {
+
+
+ var useTransactionWithOracle =
+ SqlSugarHelper.UseTransactionWithOracle(db =>
+ {
+ return db.Updateable<QsItemIpiReq>()
+ .SetColumns(s => s.Fsubmit == 1)
+ .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
+ .SetColumns(s => s.FsubmitDate == DateTime.Now)
+ .Where(s => s.Id == rkjDto.gid)
+ .ExecuteCommand();
+ });
+
+ return useTransactionWithOracle > 0;
+ }
+
+ public List<Component> getYzxBDlist(string id)
+ {
+ OracleSQLHelper SQLHelper = new();
+ //鏌ュ厓鍣ㄤ欢
+ //var sql1 =
+ // string.Format(
+ // @"select ITEMNAME from MES_IQC_CONSISTENCY_ck where PID='" +
+ // id + "' group by ITEMNAME order by ITEMNAME");
+
+ var sql1 =
+ string.Format(
+ @"select CASE WHEN max(MULTI_SELECT) is null THEN ''ELSE '銆�'||max(MULTI_SELECT)||'銆�' END as A,ITEMNAME as ITEMNAME from MES_IQC_CONSISTENCY_SJ_ck where PID='" + id + "' group by ITEMNAME order by ITEMNAME");
+ //鏌ユ槑缁�
+ var sql2 =
+ string.Format(@"select * from MES_IQC_CONSISTENCY_SJ_ck where PID='" +
+ id + "' order by ITEMNAME,ITEMMODE,SUPPNAME");
+ var dataTable1 = SQLHelper.ExecuteQuery(sql1);
+ var dataTable2 = SQLHelper.ExecuteQuery(sql2);
+ var Components = new List<Component>();
+
+
+ for (var i = 0; i < dataTable1.Rows.Count; i++)
+ {
+ var component = new Component();
+ component.Name = dataTable1.Rows[i]["A"].ToString() + dataTable1.Rows[i]["ITEMNAME"].ToString();
+ component.Specs = new List<string>();
+ component.Manufacturers = new List<string>();
+ component.Id = new List<string>();
+ component.SelectedSpec = -1;
+ component.SelectedMfg = -1;
+ var index = 0;
+ for (var j = 0; j < dataTable2.Rows.Count; j++)
+ if (dataTable2.Rows[j]["ITEMNAME"].ToString() ==
+ dataTable1.Rows[i]["ITEMNAME"].ToString())
+ {
+ component.Specs.Add(dataTable2.Rows[j]["ITEMMODE"]
+ .ToString());
+ component.Manufacturers.Add(dataTable2.Rows[j]["SUPPNAME"]
+ .ToString());
+ component.Id.Add(dataTable2.Rows[j]["ID"].ToString());
+ if (dataTable2.Rows[j]["ISCHACK"].ToString() == "1")
+ {
+ component.SelectedSpec = index;
+ component.SelectedMfg = index;
+ }
+
+ index++;
+ }
+
+ Components.Add(component);
+ }
+
+ return Components;
+ }
+ public DataTable getAllInspectors()
+ {
+ OracleSQLHelper SQLHelper = new();
+ var sql =
+ @"select a.USER_NAME label,U.FCODE value from IQC_BEFORE_FROM_SJ a JOIN SYS_USER U ON U.FID=A.SID";
+ return SQLHelper.ExecuteQuery(sql);
+ }
+
+ /// <summary>
+ /// 涓�鑷存�ч」鐩�
+ /// </summary>
+ public class Component
+ {
+ public string Name { get; set; }
+ public List<string> Specs { get; set; }
+ public List<string> Manufacturers { get; set; }
+ public List<string> Id { get; set; }
+ public int SelectedSpec { get; set; }
+ public int SelectedMfg { get; set; }
+ }
+ public void saveYzxBDlist(string id, DataTable DB)
+ {
+ OracleSQLHelper SQLHelper = new();
+ //鍏堟妸缁撴灉娓呯┖
+ var sql1 =
+ string.Format(
+ @"update MES_IQC_CONSISTENCY_SJ_ck set ISCHACK=0 where PID='" +
+ id + "' ");
+ SQLHelper.ExecuteQuery(sql1);
+ var rowId = "";
+ for (var i = 0; i < DB.Rows.Count; i++)
+ rowId += "'" + DB.Rows[i]["id"] + "',";
+ rowId = rowId.Substring(0, rowId.Length - 1);
+
+
+ //淇敼缁撴灉
+ var sql2 =
+ string.Format(
+ @"update MES_IQC_CONSISTENCY_SJ_ck set ISCHACK=1 where PID='" +
+ id + "'and id in(" + rowId + ") ");
+ SQLHelper.ExecuteQuery(sql2);
+ }
+ public string[] YzxImgVerify(string id)
+ {
+ var msgStr = new string[2];
+
+ OracleSQLHelper SQLHelper = new();
+ //淇敼缁撴灉
+ //var sql2 = string.Format(
+ // @"select A.ITEMNAME from ( select 888||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_CK where pid='" +
+ // id + "' group by ITEMNAME) A " +
+ // "left join MES_QS_IMAGE b on a.id=b.fid where B.id is null order by ITEMNAME");
+
+
+ var sql2 = string.Format(
+ @"select A.ITEMNAME from ( select 999||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid='" + id.ToString() + "' and ITEMNAME not in(select ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where PID='" + id.ToString() + "' and MULTI_SELECT is not null)" +
+ "group by ITEMNAME) A" +
+ " left join MES_QS_IMAGE b on a.id=b.fid where B.id is null" +
+ " union" +
+ " select '鍒嗙粍锛�' || MULTI_SELECT as ITEMNAME from MES_IQC_CONSISTENCY_SJ_CK where pid = '" + id.ToString() + "' and MULTI_SELECT is not null and MULTI_SELECT not in(select A.MULTI_SELECT as ITEMNAME from (select 999 || min(id) id, MULTI_SELECT from MES_IQC_CONSISTENCY_SJ_CK where pid = '" + id.ToString() + "' and MULTI_SELECT is not null group by MULTI_SELECT,ITEMNAME) A left join MES_QS_IMAGE b on a.id = b.fid where B.id is not null) group by MULTI_SELECT");
+
+ var db = SQLHelper.ExecuteQuery(sql2);
+ if (db.Rows.Count > 0)
+ {
+ msgStr[1] = "鍏冨櫒浠讹細";
+ for (var i = 0; i < db.Rows.Count; i++)
+ msgStr[1] += db.Rows[i]["ITEMNAME"] + ",";
+ msgStr[1] += "鏈畬鎴愬浘鐗囦笂浼狅紝璇蜂笂浼狅紒";
+ msgStr[0] = "1";
+ }
+ else
+ {
+ msgStr[0] = "0";
+ msgStr[1] = "ok";
+ }
+
+ return msgStr;
+ }
+
+
+ /// <summary>
+ /// 淇濆瓨鏂版楠屽憳
+ /// </summary>
+ /// <param name="NewStaffUserID">鏂版楠屽憳ID</param>
+ /// <param name="userID">淇敼浜�</param>
+ /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+ /// <returns></returns>
+ public string[] SaveCheckBy(string NewStaffUserID, string userID,
+ string releaseNo)
+ {
+ // 瀹氫箟杈撳嚭鍙傛暟
+ 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("P_FCHECK_BY", NewStaffUserID,
+ System.Data.DbType.String, ParameterDirection.Input),
+ new("p_Release_No", releaseNo,
+ System.Data.DbType.String, ParameterDirection.Input),
+ new("p_User", userID,
+ System.Data.DbType.String, ParameterDirection.Input),
+
+ outputResult,
+ outputMessage
+ };
+
+ var db = SqlSugarHelper.GetInstance();
+
+ // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+ db.Ado.ExecuteCommand(
+ "BEGIN Prc_Mes_Pqc_SJ_Update_CheckBy(:P_FCHECK_BY,:p_Release_No,:p_User, :o_Result, :o_Msg); END;",
+ parameters.ToArray());
+
+ // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+ var resultValue = outputResult.Value?.ToString();
+ var messageValue = outputMessage.Value?.ToString();
+ var msg = new string[2];
+ msg[0] = resultValue;
+ msg[1] = messageValue;
+ return msg;
+ }
+
+
+
+}
\ No newline at end of file
--
Gitblit v1.9.3