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; } } }