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<ZuHeRequestOrders>
|
{
|
/**
|
* 组合来料检验申请单
|
*/
|
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<ZuHeRequestOrders>()
|
.Where(t => t.ReleaseNo == releaseNo)
|
.First();
|
|
if (existingQcIssueResult != null)
|
{
|
// 更新 ZuHeRequestOrders 表中的字段
|
var updateResult = db.Updateable<ZuHeRequestOrders>()
|
.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<ZuHeRequestOrders>()
|
.Where(t => t.ReleaseNo == releaseNo)
|
.First();
|
|
if (existingQcIssueResult != null)
|
{
|
// 更新 ZuHeRequestOrders 表中的字段
|
var updateResult = db.Updateable<ZuHeRequestOrders>()
|
.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;
|
}
|
|
}
|
|
}
|