using WmsMobileServe.Annotation;
using WmsMobileServe.ApiServe.Mobile.Vo;
using WmsMobileServe.DataBase.Base.Po;
namespace WmsMobileServe.DataBase.Base.Dao;
[Component]
public class CuxWmsPoLinesItfDao(DataBaseClient client)
{
///
/// 根据状态查询
///
///
///
public List? SelectWithStatus(int? status)
{
if (status == default) return default;
try
{
var sqlFuc = client.Instance().Queryable()
.Where(x => x.Status == status);
return sqlFuc.ToList();
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
public List? Select(CuxWmsPoLinesItf cuxWmsPoLinesItf)
{
try
{
var sqlFuc = client.Instance().Queryable()
.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;
}
}
///
/// 查询可用的物料
///
///
///
///
public List? SelectCanUse(string? orderId, long? goodId)
{
try
{
var sqlFuc = client.Instance().SqlQueryable($@"
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();
return sqlFuc.ToList();
}
catch (Exception ex)
{
_ = ex;
return null;
}
}
}