using MES.Service.DB; using MES.Service.Modes.QcIssueResult; using MES.Service.Modes.SentLaboratory; using Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MES.Service.service.SentLaboratory; public class SaveLaboratoryManager:Repository { public dynamic Save(GetLaboratoryDetails getLaboratoryDetails) { var mesUpdateMesQmsSample = GetMesQcIssueResults(getLaboratoryDetails); return UseTransaction(db => { return SaveOrUpdateData(db, mesUpdateMesQmsSample) ? 1 : 0; }) > 0; } public UpdateMesQmsSample GetMesQcIssueResults(GetLaboratoryDetails getLaboratoryDetails) { var mesUpdateMesQmsSample = new UpdateMesQmsSample { ReleaseNo = getLaboratoryDetails.RELEASE_NO, DEPARTMENTNAME = getLaboratoryDetails.DEPARTMENTNAME, CreateDate = getLaboratoryDetails.CREATE_DATE1, QUANTITY = getLaboratoryDetails.QUANTITY, CompleteDate = getLaboratoryDetails.COMPLETE_DATE, TestReq=getLaboratoryDetails.TEST_REQ, SimReq = getLaboratoryDetails.SIM_REQ, ItemNo = getLaboratoryDetails.ITEM_NO, UrgentFlag = getLaboratoryDetails.URGENT_FLAG, JYDH = getLaboratoryDetails.JYDH, REMARKS = getLaboratoryDetails.REMARKS, ItemName = getLaboratoryDetails.ITEM_NAME, DEPARTMENTCODE = getLaboratoryDetails.DEPARTMENTCODE, PAPERBILLNO = getLaboratoryDetails.LOT_NO, }; // 遍历 CHECKBOX 并赋值 foreach (var item in getLaboratoryDetails.CHECKBOX) { switch (item.InspectionItems) { case "磁铁拉力": mesUpdateMesQmsSample.Check01 = 1; break; case "磁铁承重": mesUpdateMesQmsSample.Check02 = 1; break; case "盐雾": mesUpdateMesQmsSample.Check03 = 1; break; case "IP": mesUpdateMesQmsSample.Check04 = 1; break; case "老化测试": mesUpdateMesQmsSample.Check05 = 1; break; case "传导辐射": mesUpdateMesQmsSample.Check06 = 1; break; case "跌落测试": mesUpdateMesQmsSample.Check07 = 1; break; case "电线拉力": mesUpdateMesQmsSample.Check08 = 1; break; case "接口插拔": mesUpdateMesQmsSample.Check09 = 1; break; case "光谱测试": mesUpdateMesQmsSample.Check10 = 1; break; case "ROHS": mesUpdateMesQmsSample.Check11 = 1; break; case "电池充放电": mesUpdateMesQmsSample.Check12 = 1; break; case "高温": mesUpdateMesQmsSample.Check13 = 1; break; case "低温": mesUpdateMesQmsSample.Check14 = 1; break; case "IK": mesUpdateMesQmsSample.Check15 = 1; break; case "温升测试": mesUpdateMesQmsSample.Check16 = 1; break; case "寿命": mesUpdateMesQmsSample.Check17 = 1; break; case "其它": mesUpdateMesQmsSample.Check18 = 1; mesUpdateMesQmsSample.Line04 = getLaboratoryDetails.Line04; break; default: // 如果 InspectionItems 不匹配任何条件,可以选择忽略或记录日志 break; } } return mesUpdateMesQmsSample; } /** * 插入数据库表 */ private bool SaveOrUpdateData(SqlSugarScope db, UpdateMesQmsSample updateMesQmsSample) { ////// 查询 QcIssueResults 表中是否存在匹配的记录 ////var mapping = db.Queryable() //// .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo) //// .Select(t => new QcIssueResults //// { //// ReleaseNo = t.ReleaseNo, //// }) //// .ToList(); //// 查询 UpdateMesQmsSample 表中是否存在匹配的记录 //var existingRecord = db.Queryable() // .Where(t => t.ReleaseNo == updateMesQmsSample.ReleaseNo) // .First(); // 使用 First 获取第一条记录 //if (existingRecord != null) //{ // // 更新 UpdateMesQaItems 表中的字段 // updateMesQmsSample.Id = existingRecord.Id; // // 执行更新操作 // var updateResult = db.Updateable(updateMesQmsSample).ExecuteCommand(); // return updateResult > 0; // 如果更新成功,返回 true //} //else //{ // Debug.WriteLine("插入"); // 如果 mapping 为空,插入新记录到 QcIssueResults 表 var orUpdate = base.Insert(updateMesQmsSample); if (orUpdate) return true; throw new NotImplementedException("插入或更新失败"); //} } public string DeleteLaboratory(string JYDH) { try { var db = SqlSugarHelper.GetInstance(); // 假设 db 是 SQLSugar 的 SqlSugarClient 实例 var result = db.Deleteable() .Where(t => t.JYDH == JYDH) // 根据 JYDH 删除 .ExecuteCommand(); if (result > 0) { return "删除成功!"; } else { return "未找到匹配的记录,删除失败。"; } } catch (Exception ex) { return "删除失败,错误信息:" + ex.Message; } } }