Commit 1e44dbac authored by liudong1993's avatar liudong1993

重新入库 出库查询

parent 6ab96801
using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Property
{
/// <summary>
/// 商品出库记录实体
/// </summary>
[Serializable]
[DB(ConnectionName = "PropertyConnection")]
public class RB_WarehouseOut_GoodsDetail
{
/// <summary>
/// 入库单id
/// </summary>
public int StockInId { get; set; }
/// <summary>
/// 物料id
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 出库id
/// </summary>
public int StockOutId { get; set; }
/// <summary>
/// 仓库id
/// </summary>
public int WarehouseId { get; set; }
/// <summary>
/// 申请id
/// </summary>
public int ApplyId { get; set; }
/// <summary>
/// Id
/// </summary>
public int ID
{
get;
set;
}
/// <summary>
/// OrderId
/// </summary>
public int OrderId
{
get;
set;
}
/// <summary>
/// 商品id
/// </summary>
public int GoodsId
{
get;
set;
}
/// <summary>
/// 删除状态0-否,1-是
/// </summary>
public int Status
{
get;
set;
}
/// <summary>
/// 订单商品id
/// </summary>
public int OrderGoodsId
{
get;
set;
}
/// <summary>
/// 商品名称
/// </summary>
public string GoodsName
{
get;
set;
}
/// <summary>
/// 规格
/// </summary>
public string Specification
{
get;
set;
}
/// <summary>
/// 规格key
/// </summary>
public string SpecificationSort { get; set; }
/// <summary>
/// 货号
/// </summary>
public string ProductCode
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// 成本价
/// </summary>
public decimal? CostMoney { get; set; }
}
}
using VT.FW.DB;
using Mall.Model.Entity.Property;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.Property
{
/// <summary>
/// 商品出库记录扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "PropertyConnection")]
public class RB_WarehouseOut_GoodsDetail_Extend : RB_WarehouseOut_GoodsDetail
{
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 财务单据id
/// </summary>
public int FinanceId { get; set; }
/// <summary>
/// 仓库名称
/// </summary>
public string WarehouseName { get; set; }
/// <summary>
/// 出库数量
/// </summary>
public int Number { get; set; }
/// <summary>
/// 出库时间
/// </summary>
public DateTime? StockOutDate { get; set; }
/// <summary>
/// 重新入库数量
/// </summary>
public int InventoryNum { get; set; }
}
}
......@@ -50,6 +50,10 @@ namespace Mall.Module.Property
/// </summary>
private readonly RB_SupplierRepository supplierRepository = new RB_SupplierRepository();
/// <summary>
/// 订单
/// </summary>
private readonly RB_Goods_OrderRepository goods_OrderRepository = new RB_Goods_OrderRepository();
/// <summary>
/// 商品分类
/// </summary>
private readonly RB_Goods_CategoryRepository goods_CategoryRepository = new RB_Goods_CategoryRepository();
......@@ -128,6 +132,11 @@ namespace Mall.Module.Property
/// </summary>
private readonly RB_FinanceFlowConnectRepository financeFlowConnectRepository = new RB_FinanceFlowConnectRepository();
/// <summary>
/// 出库明细
/// </summary>
private readonly RB_WarehouseOut_GoodsDetailRepository warehouseOut_GoodsDetailRepository = new RB_WarehouseOut_GoodsDetailRepository();
#region 获取采购单
......@@ -1051,6 +1060,44 @@ namespace Mall.Module.Property
});
}
#endregion
#region 重新入库
/// <summary>
/// 获取出库明细分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_WarehouseOut_GoodsDetail_Extend> GetGoodsOutDetailPageList(int pageIndex, int pageSize, out long count, RB_WarehouseOut_GoodsDetail_Extend demodel)
{
if (!string.IsNullOrEmpty(demodel.OrderNo)) {
var olist = goods_OrderRepository.GetOrderList(new RB_Goods_Order_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, OrderNo = demodel.OrderNo });
if (olist.Any()) {
demodel.OrderId = olist.FirstOrDefault()?.OrderId ?? 0;
}
demodel.OrderNo = "";
}
var list = warehouseOut_GoodsDetailRepository.GetPageList_V2(pageIndex, pageSize, out count, demodel);
if (list.Any()) {
//查询订单号
string OrderIds = string.Join(",", list.Where(x => x.OrderId > 0).Select(x => x.OrderId).Distinct());
List<RB_Goods_Order_Extend> orderList = new List<RB_Goods_Order_Extend>();
if (!string.IsNullOrEmpty(OrderIds)) {
orderList = goods_OrderRepository.GetOrderList(new RB_Goods_Order_Extend() { OrderIds = OrderIds });
}
foreach (var item in list)
{
item.OrderNo = orderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.OrderNo ?? "";
}
}
return list;
}
#endregion
#region 获取资产物料列表
......
......@@ -208,6 +208,10 @@ where {where} group by o.OrderId asc";
{
where += $@" and o.{nameof(RB_Goods_Order.OrderId)} in({dmodel.OrderIds})";
}
if (!string.IsNullOrEmpty(dmodel.OrderNo))
{
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)} ='{dmodel.OrderNo}'";
}
if (!string.IsNullOrEmpty(dmodel.orderNos))
{
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)} in({dmodel.orderNos})";
......
using Mall.Model.Entity.Property;
using Mall.Model.Extend.Property;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Property
{
/// <summary>
/// 出库明细id
/// </summary>
public class RB_WarehouseOut_GoodsDetailRepository : BaseRepository<RB_WarehouseOut_GoodsDetail>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_WarehouseOut_GoodsDetail); } }
/// <summary>
/// 出库申请列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_WarehouseOut_GoodsDetail_Extend> GetOutGoodsDetailPageList(int pageIndex, int pageSize, out long rowCount, RB_WarehouseOut_GoodsDetail_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$" select a.* from {TableName} as a where a.Status=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.MallBaseId)}={query.MallBaseId}");
}
if (query.OrderId > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.OrderId)}={query.OrderId}");
}
if (!string.IsNullOrEmpty(query.GoodsName))
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.GoodsName)} like '%{query.GoodsName}%'");
}
}
return GetPage<RB_WarehouseOut_GoodsDetail_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 出库申请列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_WarehouseOut_GoodsDetail> GetOutGoodsDetailList(RB_WarehouseOut_GoodsDetail query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" select * from {TableName} as a where a.Status=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.MallBaseId)}={query.MallBaseId}");
}
if (query.ApplyId > 0)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_GoodsDetail.ApplyId)}={query.ApplyId}");
}
}
return Get<RB_WarehouseOut_GoodsDetail>(builder.ToString()).ToList();
}
/// <summary>
/// 获取出库记录分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_WarehouseOut_GoodsDetail_Extend> GetPageList_V2(int pageIndex, int pageSize, out long rowCount, RB_WarehouseOut_GoodsDetail_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($@"SELECT a.*,i.InventoryNum FROM(
SELECT gd.OrderId,gd.OrderGoodsId,gd.GoodsId,gd.StockOutId,gd.MaterialId,gd.GoodsName
,gd.Specification,gd.CostMoney,gd.ProductCode,gd.WarehouseId,s.StockOutDate,w.`Name` as WarehouseName,COUNT(0) AS Number
FROM rb_warehouseout_goodsdetail gd
LEFT JOIN rb_supplies_stockout s on gd.StockOutId = s.Id and s.`Status`=0 and s.StockOutState =1
LEFT JOIN rb_supplies_warehouse w on gd.WarehouseId =w.Id
WHERE gd.`Status`=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND gd.{nameof(RB_WarehouseOut_GoodsDetail.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND gd.{nameof(RB_WarehouseOut_GoodsDetail.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND gd.{nameof(RB_WarehouseOut_GoodsDetail.MallBaseId)}={query.MallBaseId}");
}
if (query.OrderId > 0)
{
builder.Append($" AND gd.{nameof(RB_WarehouseOut_GoodsDetail.OrderId)}={query.OrderId}");
}
if (!string.IsNullOrEmpty(query.GoodsName))
{
builder.Append($" AND gd.{nameof(RB_WarehouseOut_GoodsDetail.GoodsName)} like '%{query.GoodsName}%'");
}
}
builder.Append($@" GROUP BY gd.OrderId,gd.OrderGoodsId,gd.GoodsId,gd.StockOutId,gd.MaterialId) a
LEFT JOIN rb_warehouseout_inventory i on a.StockOutId = i.StockOutId and a.MaterialId = i.MaterialId and a.OrderId = i.OrderId and a.OrderGoodsId = i.OrderGoodsId");
builder.Append(" ORDER BY a.StockOutDate DESC");
return GetPage<RB_WarehouseOut_GoodsDetail_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
}
}
......@@ -375,6 +375,86 @@ namespace Mall.WebApi.Controllers.MallBase
}
#endregion
#region 重新入库
/// <summary>
/// 获取出库记录表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsOutDetailPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_WarehouseOut_GoodsDetail_Extend demodel = JsonConvert.DeserializeObject<RB_WarehouseOut_GoodsDetail_Extend>(parms.msg.ToString());
demodel.TenantId = parms.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = propertyModule.GetGoodsOutDetailPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.OrderId,
x.OrderGoodsId,
x.GoodsId,
x.StockOutId,
x.MaterialId,
x.GoodsName,
x.Specification,
x.OrderNo,
x.CostMoney,
x.ProductCode,
x.WarehouseId,
x.WarehouseName,
x.Number,
StockOutDate = x.StockOutDate.HasValue ? x.StockOutDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
x.InventoryNum
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 重新入库
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsAgainInventory()
{
var parms = RequestParm;
List<RB_WarehouseOut_GoodsDetail_Extend> demodel = JsonConvert.DeserializeObject<List<RB_WarehouseOut_GoodsDetail_Extend>>(parms.msg.ToString());
if (parms.ERPEmpId <= 0)
{
return ApiResult.ParamIsNull("请传递参数");
}
if (demodel == null || demodel.Count() == 0) {
return ApiResult.ParamIsNull("请传递数据");
}
foreach (var item in demodel)
{
if (item.OrderId <= 0){
return ApiResult.ParamIsNull("请传递订单id");
}
if (item.OrderGoodsId <= 0) {
return ApiResult.ParamIsNull("请传递订单明细id");
}
if (item.StockOutId <= 0) {
return ApiResult.ParamIsNull("请传递出库单id");
}
if (item.MaterialId <= 0) {
return ApiResult.ParamIsNull("请传递物料id");
}
if (item.InventoryNum <= 0) {
return ApiResult.ParamIsNull("请传递入库数量");
}
}
return ApiResult.Success();
}
#endregion
#region 同步商品
/// <summary>
/// 获取物料档案分页列表
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment