using System.Data;
|
using System.Data.SqlClient;
|
using Masuit.Tools;
|
using NewPdaSqlServer.DB;
|
using NewPdaSqlServer.Dto.service;
|
using NewPdaSqlServer.entity;
|
using SqlSugar;
|
|
namespace NewPdaSqlServer.service.Warehouse;
|
|
public class MesCgthSqManager : Repository<MesCgthSq>
|
{
|
public List<MesCgthSq> GetMesCgthSq()
|
{
|
return Db.Queryable<MesCgthSq>()
|
.Where(s => s.Status == true)
|
.ToList();
|
}
|
|
public OutItemDto GetSumItem(WarehouseQuery query)
|
{
|
var mesInvItemOuts = base.GetSingle(it => it.BillNo == query.billNo);
|
if (mesInvItemOuts == null) throw new Exception("采购退货申请单不存在");
|
|
var dto = new OutItemDto();
|
dto.SumItem = GetItems(query);
|
|
var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
|
.Where(a => a.ItemBarcode == query.barcode).Single();
|
|
if (mesInvItemStocks == null) return dto;
|
|
var mesItems = Db.Queryable<MesItems>()
|
.Where(s => s.Id == mesInvItemStocks.ItemId).Single();
|
|
dto.ItemNo = mesItems.ItemNo;
|
dto.Quantity = mesInvItemStocks.Quantity;
|
|
return dto;
|
}
|
|
public List<MesCgthSqDetail> GetItems(WarehouseQuery query)
|
{
|
// 尝试将query.id转换为Guid类型,如果转换失败,则抛出异常
|
var parsedGuid = Guid.Empty;
|
if (string.IsNullOrEmpty(query.id))
|
return new List<MesCgthSqDetail>(); // 如果query.id为空,则返回空列表
|
|
var isValid = Guid.TryParse(query.id, out parsedGuid);
|
if (!isValid)
|
throw new ApplicationException("GUID转换错误"); // 如果转换失败,则抛出异常
|
|
// 使用SqlSugar框架查询MesInvItemOutItems和MesItems表,根据ItemId进行内连接
|
var mesInvItemOutItemsList = Db.Queryable<MesCgthSqDetail, MesItems>(
|
(c, s) => new object[]
|
{
|
JoinType.Inner, c.ItemId == s.Id // 内连接条件
|
}).Where((c, s) => c.Mid == parsedGuid) // 根据ItemOutId过滤
|
.Select<MesCgthSqDetail>((c, s) =>
|
new MesCgthSqDetail // 选择并映射到MesInvItemOutItems对象
|
{
|
Id = c.Id,
|
Mid = c.Mid,
|
InvBillNo = c.InvBillNo,
|
InvWorkLine = c.InvWorkLine,
|
Ebeln = c.Ebeln,
|
Eid = c.Eid,
|
Erpid = c.Erpid,
|
SqNum = c.SqNum,
|
YsNum = c.YsNum,
|
RkmxGuid = c.RkmxGuid,
|
Remark = c.Remark,
|
ItemNo = s.ItemNo, // 从MesItems表中获取ItemNo
|
ItemName = s.ItemName, // 从MesItems表中获取ItemName
|
ItemModel = s.ItemModel, // 从MesItems表中获取ItemModel
|
ItemId = c.ItemId
|
}).ToList(); // 将查询结果转换为列表
|
|
return mesInvItemOutItemsList; // 返回处理后的列表
|
}
|
|
public ProductionPickDto ScanCode(WarehouseQuery query)
|
{
|
var _strMsg = "";
|
var _intSum = "";
|
using (var conn = new SqlConnection(DbHelperSQL.strConn))
|
{
|
if (query.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
|
if (query.billNo.IsNullOrEmpty()) throw new Exception("领料单号不允许为空");
|
if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
|
|
using (var cmd = new SqlCommand("[prc_pda_CGTH]", conn))
|
{
|
try
|
{
|
conn.Open();
|
cmd.CommandType = CommandType.StoredProcedure;
|
SqlParameter[] parameters =
|
{
|
new("@outMsg", SqlDbType.NVarChar, 300),
|
new("@outSum", SqlDbType.NVarChar, 300),
|
new("@barcode_num", SqlDbType.NVarChar, 300),
|
new("@split_num", SqlDbType.NVarChar, 300),
|
new("@c_User", query.userName),
|
new("@p_biLL_no", query.billNo),
|
new("@p_item_barcode", query.barcode)
|
};
|
parameters[0].Direction = ParameterDirection.Output;
|
parameters[1].Direction = ParameterDirection.Output;
|
parameters[2].Direction = ParameterDirection.Output;
|
parameters[3].Direction = ParameterDirection.Output;
|
foreach (var parameter in parameters)
|
cmd.Parameters.Add(parameter);
|
cmd.ExecuteNonQuery();
|
_strMsg = parameters[0].Value.ToString();
|
_intSum = parameters[1].Value.ToString();
|
|
var barcodeNum = parameters[2].Value.ToString();
|
var splitNum = parameters[3].Value.ToString();
|
|
var result = Convert.ToInt32(_intSum);
|
if (result <= 0) throw new Exception(_strMsg);
|
|
var dto = new ProductionPickDto
|
{
|
daa001 = query.daa001,
|
barcodeNum = barcodeNum,
|
splitNum = splitNum,
|
barcode = query.barcode
|
};
|
|
return dto;
|
}
|
catch (Exception ex)
|
{
|
throw new Exception(ex.Message);
|
}
|
finally
|
{
|
conn.Close();
|
}
|
}
|
}
|
}
|
}
|