using Apache.NMS.ActiveMQ.Commands;
using Rhea.Common;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using Tiger.IBusiness;
using Tiger.Model;
using Tiger.Model.Minsun;
namespace Tiger.Business.WMS
{
///
/// 库存信息接口
///
public class InventroyInfo : IInventroyInfo
{
///
/// 入库信息
///
///
///
public List GetInStoreInfo(iParams param)
{
DbClient db = Biz.DataSource["WMS57"].Client;
var query = db.Queryable((i, m,v) =>
new JoinQueryInfos(
JoinType.Left, i.ITEM_CODE == m.ITEM_CODE,
JoinType.Left, i.WH_ID == v.WH_ID && i.LOCATION_ID == v.LOCATION_ID
))
.Where((i, m, v) => i.STATUS == WMS_ITEM.STATUSs.InStore.GetValue() && (i.TRANS_CODE == "BIZ_ERP_OTH_IN" || i.TRANS_CODE == "BIZ_ERP_RECEIPT"))
.WhereIF(!string.IsNullOrEmpty(param.sn), (i, m, v) => i.SN == param.sn)
.WhereIF(!string.IsNullOrEmpty(param.startDate), (i, m, v) => i.UPDATE_TIME >= Convert.ToDateTime(param.startDate))
.WhereIF(!string.IsNullOrEmpty(param.endDate), (i, m, v) => i.UPDATE_TIME < Convert.ToDateTime(param.endDate))
.Select((i, m, v) => new iInStoreInfo
{
sn = i.SN,
MaterialCode = i.ITEM_CODE,
MaterialName = m.ITEM_NAME,
VendorCode = i.SUPP_CODE,
WarehouseCode = v.WH_CODE,
LocationCode = v.LOCATION_CODE,
LotNo = i.LOTNO,
SourceCode = i.TRANS_NO,
QTY = i.QTY,
CreateDate = i.CREATE_TIME,
UpdateDate = i.UPDATE_TIME
})
.ToList();
return query;
}
///
/// 出库信息
///
///
///
public List GetOutStoreInfo(iParams param)
{
DbClient db = Biz.DataSource["WMS57"].Client;
var query = db.Queryable((i, m, v) =>
new JoinQueryInfos(
JoinType.Left, i.ITEM_CODE == m.ITEM_CODE,
JoinType.Left, i.WH_ID == v.WH_ID && i.LOCATION_ID == v.LOCATION_ID
))
.Where((i, m, v) => i.STATUS == WMS_ITEM.STATUSs.OffShelf.GetValue() || i.STATUS == WMS_ITEM.STATUSs.Sended.GetValue() || i.STATUS == WMS_ITEM.STATUSs.Shipped.GetValue())
.WhereIF(!string.IsNullOrEmpty(param.sn), (i, m, v) => i.SN == param.sn)
.WhereIF(!string.IsNullOrEmpty(param.startDate), (i, m, v) => i.UPDATE_TIME >= Convert.ToDateTime(param.startDate))
.WhereIF(!string.IsNullOrEmpty(param.endDate), (i, m, v) => i.UPDATE_TIME < Convert.ToDateTime(param.endDate))
.Select((i, m, v) => new iOutStoreInfo
{
sn = i.SN,
MaterialCode = i.ITEM_CODE,
MaterialName = m.ITEM_NAME,
WarehouseCode = v.WH_CODE,
LocationCode = v.LOCATION_CODE,
BillCode = i.TRANS_NO,
QTY = i.QTY,
CreateDate = i.CREATE_TIME,
UpdateDate = i.UPDATE_TIME
})
.ToList();
return query;
}
public List GetReturnInfo(iParamsBase param)
{
throw new NotImplementedException();
}
public List GetSplitInfo(iParams param)
{
throw new NotImplementedException();
}
///
/// 物料库存信息
///
///
///
public List GetStorageInfo(iParamsBase param)
{
DbClient db = Biz.DataSource["WMS57"].Client;
var query = db.Queryable((i, m,s) =>
new JoinQueryInfos(
JoinType.Left, i.ITEM_CODE == m.ITEM_CODE,
JoinType.Left, i.SUPP_CODE == s.SUPP_CODE
))
.Where((i, m, s) => i.STATUS == WMS_ITEM.STATUSs.InStore.GetValue())
.WhereIF(!string.IsNullOrEmpty(param.startDate), (i, m, s) => i.UPDATE_TIME >= Convert.ToDateTime(param.startDate))
.WhereIF(!string.IsNullOrEmpty(param.endDate), (i, m, s) => i.UPDATE_TIME < Convert.ToDateTime(param.endDate))
.Select((i, m, s) => new iStorageInfo
{
MaterialCode = i.ITEM_CODE,
MaterialName = m.ITEM_NAME,
VenderCode = i.SUPP_CODE,
VenderName = s.SUPP_NAME_CN,
Unit = m.UNIT,
QTY = i.QTY,
UpdateDate = i.UPDATE_TIME
})
.ToList();
return query;
}
}
}