using MES.Service.DB; using MES.Service.Dto.webApi.QcIssueResult; using MES.Service.Dto.webApi.ZuHeRequestOrder; using MES.Service.Modes.QcIssueResult; using MES.Service.Modes.ZuHeRequestOrder; 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.ZuHeRequestOrder; public class ZuHeRequestOrderManager : Repository { /** * 组合来料检验申请单 */ public dynamic SaveZHBS(ZuHeRequestsOrder zuHeRequestsOrder ) { var mesZuHeRequestsOrder = GetMesQcIssueResults(zuHeRequestsOrder); return UseTransaction(db => { return SaveOrUpdateData(db, mesZuHeRequestsOrder) ? 1 : 0; }) > 0; } public ZuHeRequestOrders GetMesQcIssueResults(ZuHeRequestsOrder zuHeRequestsOrder) { // 从 ComboSingle 中提取所有 RELEASE_NO var releaseNoList = zuHeRequestsOrder.ComboSingle.Select(item => item.RELEASE_NO).ToList(); var mesQcIssueResults = new ZuHeRequestOrders { ReleaseNo = string.Join(",", releaseNoList) // 将所有 RELEASE_NO 拼接成一个字符串 }; return mesQcIssueResults; } /** * 解除来料检验申请单组合 */ public dynamic deleateZHBS(ZuHeRequestsOrder zuHeRequestsOrder) { var mesZuHeRequestsOrder = GetMesQcIssueResults(zuHeRequestsOrder); return UseTransaction(db => { return ReleaseData(db, mesZuHeRequestsOrder) ? 1 : 0; }) > 0; } /** * 更新数据库表进行组合 */ private bool SaveOrUpdateData(SqlSugarScope db, ZuHeRequestOrders zuHeRequestOrders ) { try { // 从 ReleaseNo 中提取所有 RELEASE_NO var releaseNoList = zuHeRequestOrders.ReleaseNo.Split(',').ToList(); var firstReleaseNo = zuHeRequestOrders.ReleaseNo.Split(',').FirstOrDefault(); foreach (var releaseNo in releaseNoList) { // 查询 ZuHeRequestOrders 表中是否存在匹配的记录 var existingQcIssueResult = db.Queryable() .Where(t => t.ReleaseNo == releaseNo) .First(); if (existingQcIssueResult != null) { // 更新 ZuHeRequestOrders 表中的字段 var updateResult = db.Updateable() .SetColumns(t => new ZuHeRequestOrders { ZH_BS = firstReleaseNo, }) .Where(t => t.ReleaseNo == releaseNo) .ExecuteCommand(); if (updateResult <= 0) { throw new Exception($"更新 ZuHeRequestOrders 表失败,ReleaseNo: {releaseNo}"); } } else { throw new Exception($"未找到检验单号,ReleaseNo: {releaseNo}"); } } return true; } catch (Exception ex) { Debug.WriteLine($"错误: {ex.Message}"); throw; } } /** * 更新数据库表进行组合 */ private bool ReleaseData(SqlSugarScope db, ZuHeRequestOrders zuHeRequestOrders) { try { // 从 ReleaseNo 中提取所有 RELEASE_NO var releaseNoList = zuHeRequestOrders.ReleaseNo.Split(',').ToList(); var firstReleaseNo = zuHeRequestOrders.ReleaseNo.Split(',').FirstOrDefault(); foreach (var releaseNo in releaseNoList) { // 查询 ZuHeRequestOrders 表中是否存在匹配的记录 var existingQcIssueResult = db.Queryable() .Where(t => t.ReleaseNo == releaseNo) .First(); if (existingQcIssueResult != null) { // 更新 ZuHeRequestOrders 表中的字段 var updateResult = db.Updateable() .SetColumns(t => new ZuHeRequestOrders { ZH_BS = null, }) .Where(t => t.ReleaseNo == releaseNo) .ExecuteCommand(); if (updateResult <= 0) { throw new Exception($"更新 ZuHeRequestOrders 表失败,ReleaseNo: {releaseNo}"); } } else { throw new Exception($"未找到检验单号,ReleaseNo: {releaseNo}"); } } return true; } catch (Exception ex) { Debug.WriteLine($"错误: {ex.Message}"); throw; } } }