wms_serve_m_jinwangbancai/WmsMobileServe/DataBase/Base/Dao/CuxWmsPoLinesItfDao.cs

90 lines
3.5 KiB
C#

using WmsMobileServe.Annotation;
using WmsMobileServe.ApiServe.Mobile.Vo;
using WmsMobileServe.DataBase.Base.Po;
namespace WmsMobileServe.DataBase.Base.Dao;
[Component]
public class CuxWmsPoLinesItfDao(DataBaseClient client)
{
/// <summary>
/// 根据状态查询
/// </summary>
/// <param name="status"></param>
/// <returns></returns>
public List<CuxWmsPoLinesItf>? SelectWithStatus(int? status)
{
if (status == default) return default;
try
{
var sqlFuc = client.Instance().Queryable<CuxWmsPoLinesItf>()
.Where(x => x.Status == status);
return sqlFuc.ToList();
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
public List<CuxWmsPoLinesItf>? Select(CuxWmsPoLinesItf cuxWmsPoLinesItf)
{
try
{
var sqlFuc = client.Instance().Queryable<CuxWmsPoLinesItf>()
.WhereIF(cuxWmsPoLinesItf.PoHeaderId == default, w => w.PoHeaderId == cuxWmsPoLinesItf.PoHeaderId)
.WhereIF(cuxWmsPoLinesItf.PoLineId == default, w => w.PoLineId == cuxWmsPoLinesItf.PoLineId)
.WhereIF(cuxWmsPoLinesItf.LineLocationId == default, w => w.LineLocationId == cuxWmsPoLinesItf.LineLocationId)
.WhereIF(cuxWmsPoLinesItf.ShipToOrganization == default, w => w.ShipToOrganization == cuxWmsPoLinesItf.ShipToOrganization)
.WhereIF(cuxWmsPoLinesItf.LineNum == default, w => w.LineNum == cuxWmsPoLinesItf.LineNum)
.WhereIF(cuxWmsPoLinesItf.ItemId == default, w => w.ItemId == cuxWmsPoLinesItf.ItemId)
.WhereIF(cuxWmsPoLinesItf.Segment1 == default, w => w.Segment1 == cuxWmsPoLinesItf.Segment1)
.WhereIF(cuxWmsPoLinesItf.ItemDesc == default, w => w.ItemDesc == cuxWmsPoLinesItf.ItemDesc)
.WhereIF(cuxWmsPoLinesItf.PurUomCode == default, w => w.PurUomCode == cuxWmsPoLinesItf.PurUomCode)
.WhereIF(cuxWmsPoLinesItf.Quantity == default, w => w.Quantity == cuxWmsPoLinesItf.Quantity)
.WhereIF(cuxWmsPoLinesItf.QuantityReceives == default, w => w.QuantityReceives == cuxWmsPoLinesItf.QuantityReceives)
.WhereIF(cuxWmsPoLinesItf.Status == default, w => w.Status == cuxWmsPoLinesItf.Status);
return sqlFuc.ToList();
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
/// <summary>
/// 查询可用的物料
/// </summary>
/// <param name="orderId"></param>
/// <param name="goodId"></param>
/// <returns></returns>
public List<CuxWmsPoLinesItfView>? SelectCanUse(string? orderId, long? goodId)
{
try
{
//var sqlFuc = client.Instance().Queryable<CuxWmsPoLinesItf>()
// .Where(w => w.Segment1 == orderId && w.ItemId == goodId && (w.ClosedCode == "OPEN" || w.ClosedCode == "CLOSED_FOR_INVOICE"));
//return sqlFuc.ToList();
var sqlFuc = client.Instance().SqlQueryable<CuxWmsPoLinesItf>($@"
SELECT a.*, b.SEGMENT1 AS SEGMENT FROM CUX_WMS_PO_LINES_ITF_ZH a
RIGHT JOIN CUX_WMS_PO_HEADES_ITF_ZH b ON a.PO_HEADER_ID = b.PO_HEADER_ID WHERE a.SEGMENT1 = '{orderId}' AND a.ITEM_ID = '{goodId}' AND (a.CLOSED_CODE = 'OPEN' OR a.CLOSED_CODE = 'CLOSED_FOR_INVOICE')
").Select<CuxWmsPoLinesItfView>();
return sqlFuc.ToList();
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
}