Commit 5e35908e authored by 吴春's avatar 吴春

提交出库

parent 2f07b3fd
......@@ -50,5 +50,15 @@ namespace REBORN.Common.API
/// 语种类型
/// </summary>
public LanguageTypeEnum languageType { get; set; }
/// <summary>
/// 商户Id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序Id
/// </summary>
public int MallBaseId { get; set; }
}
}
using REBORN.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Property.Model.Entity.Mall
{
/// <summary>
/// 商品出库申请财务实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_WarehouseOut_Finance
{
/// <summary>
/// Id
/// </summary>
public int ID
{
get;
set;
}
/// <summary>
/// 财务id
/// </summary>
public int FinanceId
{
get;
set;
}
/// <summary>
/// 申请id
/// </summary>
public int ApplyId { get; set; }
/// <summary>
/// 出库id
/// </summary>
public int StockInId { get; set; }
/// <summary>
/// 删除状态0-否,1-是
/// </summary>
public int Status
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// erp操作人的id
/// </summary>
public int? CreateBy
{
get;
set;
}
/// <summary>
/// 公司
/// </summary>
public int? RB_Branch_Id
{
get;
set;
}
/// <summary>
/// 集团
/// </summary>
public int? RB_Group_Id
{
get;
set;
}
}
}
......@@ -18,6 +18,12 @@ namespace Property.Model.Extend.Mall
/// </summary>
public List<RB_WarehouseOut_Goods_Extend> WarehouseOutGoodsList { get; set; }
/// <summary>
/// 财务信息
/// </summary>
public List<RB_WarehouseOut_Finance> WarehouseOutFinance { get; set; }
/// <summary>
/// 已出库
/// </summary>
......@@ -42,5 +48,10 @@ namespace Property.Model.Extend.Mall
public string CreateByName { get; set; }
/// <summary>
/// 仓库id
/// </summary>
public int WarehouseId { get; set; }
}
}
......@@ -17,5 +17,21 @@ namespace Property.Model.Extend.Mall
/// 订单商品id
/// </summary>
public string OrderGoodsIds { get; set; }
/// <summary>
/// 仓库id
/// </summary>
public int WarehouseId { get; set; }
/// <summary>
/// 仓库数量
/// </summary>
public int SuppliesNum { get; set; }
/// <summary>
/// 物料id
/// </summary>
public int SuppliesId { get; set; }
}
}
......@@ -62,6 +62,7 @@ namespace Property.Module.Mall
/// <summary>
/// 获取已出库的商品列表
/// </summary>
......@@ -72,6 +73,19 @@ namespace Property.Module.Mall
return warehouseOutRepository.GetWarehouseOutListByIds(query);
}
/// <summary>
/// 根据出库申请id与仓库id获取出库单中的商品
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_WarehouseOut_Goods_Extend> GetOuGoodsByWarehouseId(RB_WarehouseOut_Apply_Extend query)
{
return warehouseOutRepository.GetOuGoodsByWarehouseId(query);
}
/// <summary>
/// 出库申请列表
/// </summary>
......@@ -130,6 +144,17 @@ namespace Property.Module.Mall
}
/// <summary>
/// 获取出库申请实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public RB_WarehouseOut_Apply GetApplyEntity(int id)
{
return warehouseOutApplyRepository.GetEntity(id);
}
/// <summary>
/// 审核权限
/// </summary>
......@@ -157,5 +182,8 @@ namespace Property.Module.Mall
return false;
}
}
}
......@@ -149,5 +149,61 @@ namespace Property.Repository.Mall
}
return Get<RB_WarehouseOut_Goods_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 根据出库申请id与仓库id获取出库单中的商品
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_WarehouseOut_Goods_Extend> GetOuGoodsByWarehouseId(RB_WarehouseOut_Apply_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$"SELECT b.*,d.WarehouseId,d.Number as SuppliesNum,d.SuppliesId from rb_warehouseout_goods as b
LEFT JOIN rb_warehouseout_apply as a on b.ApplyId=a.ID
LEFT JOIN rb_supplies_material as c on c.GoodsId=b.GoodsId and c.SpecificationKey=b.SpecificationSort
LEFT JOIN rb_supplies_inventory as d on d.SuppliesId=c.Id where a.`Status`=0 and b.`Status`=0 and c.`Status`=0 and d.`Status`=0 and b.IsOut=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND b.{nameof(RB_WarehouseOut_Goods_Extend.ApplyId)}={query.ID}");
}
if (query.RB_Branch_Id > -1)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_Apply.RB_Branch_Id)}={query.RB_Branch_Id}");
}
if (query.RB_Group_Id > -1)
{
builder.Append($" AND a.{nameof(RB_WarehouseOut_Apply.RB_Group_Id)}={query.RB_Group_Id}");
}
if (query.ID > 0)
{
builder.Append($" AND b.{nameof(RB_WarehouseOut_Goods_Extend.ApplyId)}={query.ID}");
}
if (query.WarehouseId > 0)
{
builder.Append($" AND d.WarehouseId={query.WarehouseId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND b.{nameof(RB_WarehouseOut_Goods_Extend.TenantId)}={query.TenantId}");
builder.Append($" AND c.TenantId={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND b.{nameof(RB_WarehouseOut_Goods_Extend.MallBaseId)}={query.MallBaseId}");
builder.Append($" AND c.TenantId={query.TenantId}");
}
if (query.SupplierId > 0)
{
builder.Append($" AND b.{nameof(RB_WarehouseOut_Goods_Extend.SupplierId)}={query.SupplierId}");
}
}
return Get<RB_WarehouseOut_Goods_Extend>(builder.ToString()).ToList();
}
}
}
......@@ -4,10 +4,13 @@ using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Property.Model.Extend;
using Property.Model.Extend.Mall;
using Property.Module.FixedAssets;
using Property.Module.Mall;
using REBORN.Common;
using REBORN.Common.API;
using REBORN.Common.Plugin;
namespace Property.WebApi.Controllers.Mall
{
......@@ -15,7 +18,9 @@ namespace Property.WebApi.Controllers.Mall
{
private readonly WarehouseOutModule warehouseOutModule = new WarehouseOutModule();
private readonly SuppliesModule suppliesModule = new SuppliesModule();
#region 审核申请单
/// <summary>
/// 获取出库申请列表
/// </summary>
......@@ -52,17 +57,51 @@ namespace Property.WebApi.Controllers.Mall
/// <summary>
/// 新增授权信息
/// 获取申请单详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdateAuthorize()
public ApiResult GetWarehouseOutApply()
{
var requestParm = GetRequestParm();
RB_WarehouseOut_Apply_Extend demodel = JsonConvert.DeserializeObject<RB_WarehouseOut_Apply_Extend>(requestParm.msg.ToString());
if (demodel.ID <= 0)
{
return ApiResult.Failed("请选择您要操作的数据");
}
var oldModel = warehouseOutModule.GetApplyEntity(demodel.ID).RefMapperTo<RB_WarehouseOut_Apply_Extend>();
if (oldModel != null)
{
oldModel.WarehouseOutGoodsList = new List<RB_WarehouseOut_Goods_Extend>();
oldModel.WarehouseOutGoodsList = warehouseOutModule.GetWarehouseOutList(new RB_WarehouseOut_Goods_Extend { ApplyId = demodel.ID });
}
return ApiResult.Success("", oldModel);
}
/// <summary>
/// 审核出库申请
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdateWarehouseOutApply()
{
var requestParm = GetRequestParm();
RB_WarehouseOut_Apply_Extend demodel = JsonConvert.DeserializeObject<RB_WarehouseOut_Apply_Extend>(requestParm.msg.ToString());
demodel.UpdateDate = System.DateTime.Now;
UserInfo userInfo = CacheManager.User.UserReidsCache.GetUserLoginInfo(requestParm.uid);
demodel.UpdateBy = userInfo.EmployeeId;
if (demodel.ID <= 0)
{
return ApiResult.Failed("请选择您要操作的数据");
}
var oldModel = warehouseOutModule.GetApplyEntity(demodel.ID);
if (oldModel.ApplyStatus != 1)
{
return ApiResult.Failed("申请单审核,请勿重复审核");
}
bool result = warehouseOutModule.UpdateWarehouseOutApply(demodel);
if (result)
......@@ -75,6 +114,138 @@ namespace Property.WebApi.Controllers.Mall
}
}
#endregion
#region 申请单出库
/// <summary>
/// 获取出库申请列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetOutGoods()
{
var parms = GetRequestParm();
UserInfo userInfo = CacheManager.User.UserReidsCache.GetUserLoginInfo(parms.uid);
RB_WarehouseOut_Apply_Extend demodel = JsonConvert.DeserializeObject<RB_WarehouseOut_Apply_Extend>(parms.msg.ToString());
demodel.RB_Group_Id = userInfo.RB_Group_id;
demodel.RB_Branch_Id = -1;
return ApiResult.Success("");
}
/// <summary>
/// 根据仓库id和申请id获取申请单中的商品
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetOuGoodsByWarehouseId()
{
var parms = GetRequestParm();
UserInfo userInfo = CacheManager.User.UserReidsCache.GetUserLoginInfo(parms.uid);
RB_WarehouseOut_Apply_Extend demodel = JsonConvert.DeserializeObject<RB_WarehouseOut_Apply_Extend>(parms.msg.ToString());
demodel.RB_Group_Id = userInfo.RB_Group_id;
demodel.RB_Branch_Id = -1;
var list = warehouseOutModule.GetOuGoodsByWarehouseId(demodel);
return ApiResult.Success("", list);
}
/// <summary>
/// 保存出库单
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetStockOutInfo()
{
var requestParm = GetRequestParm();
UserInfo userInfo = CacheManager.User.UserReidsCache.GetUserLoginInfo(requestParm.uid);
RB_Supplies_StockOut_Extend demodel = JsonConvert.DeserializeObject<RB_Supplies_StockOut_Extend>(requestParm.msg.ToString());
if (demodel.WarehouseId <= 0)
{
return ApiResult.ParamIsNull("请选择仓库");
}
if (demodel.DetailList == null || !demodel.DetailList.Any())
{
return ApiResult.ParamIsNull("请选择物料");
}
if (!demodel.StockOutDate.HasValue)
{
return ApiResult.ParamIsNull("请输入入库日期");
}
if (demodel.EmployeeId <= 0)
{
return ApiResult.ParamIsNull("请选择领用人");
}
foreach (var item in demodel.DetailList)
{
if (item.SuppliesId <= 0)
{
return ApiResult.ParamIsNull("请传递正确的物料id");
}
if (item.Number <= 0)
{
return ApiResult.ParamIsNull("请输入入库数量");
}
}
if (demodel.DetailList.Any())
{
var slist = demodel.DetailList.Select(x => x.SuppliesId).Distinct().ToList();
foreach (var item in slist)
{
if (demodel.DetailList.Where(x => x.SuppliesId == item).Count() > 1)
{
return ApiResult.Failed("每种耗材只能选择一个");
}
}
}
else
{
return ApiResult.Failed("请选择耗材");
}
demodel.Status = 0;
demodel.RB_Branch_Id = userInfo.RB_Branch_id;
demodel.RB_Group_Id = userInfo.RB_Group_id;
demodel.CreateBy = userInfo.EmployeeId;
demodel.CreateDate = DateTime.Now;
demodel.UpdateBy = userInfo.EmployeeId;
demodel.UpdateDate = DateTime.Now;
var emodel = CacheManager.User.UserReidsCache.GetEmployee(demodel.EmployeeId);
demodel.BranchId = emodel.RB_Branch_id;//暂时这么赋值 看是否需要前端自行选择
demodel.DepartmentId = emodel.RB_Department_Id;
//验证库存是否足够
if (!suppliesModule.ValidateStockOutInsert(demodel))
{
return ApiResult.Failed("库存不足无法出库,请核实后再试");
}
bool flag = suppliesModule.SetStockOutInfo(demodel);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
#endregion
}
}
\ No newline at end of file
......@@ -179,7 +179,8 @@ namespace Property.WebApi.Controllers.User
UserInfo userInfo = CacheManager.User.UserReidsCache.GetUserLoginInfo(requestParm.uid);
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(requestParm.msg.ToString());
RB_Supplies_WareHouse_Extend demodel = JsonConvert.DeserializeObject<RB_Supplies_WareHouse_Extend>(requestParm.msg.ToString());
demodel.MallBaseId = requestParm.MallBaseId;
demodel.TenantId = requestParm.TenantId;
demodel.RB_Group_Id = userInfo.RB_Group_id;
var list = suppliesModule.GetWareHousePageList(pagelist.pageIndex, pagelist.pageSize, demodel, out long count);
pagelist.count = Convert.ToInt32(count);
......@@ -202,7 +203,8 @@ namespace Property.WebApi.Controllers.User
var requestParm = GetRequestParm();
UserInfo userInfo = CacheManager.User.UserReidsCache.GetUserLoginInfo(requestParm.uid);
RB_Supplies_WareHouse_Extend demodel = JsonConvert.DeserializeObject<RB_Supplies_WareHouse_Extend>(requestParm.msg.ToString());
demodel.MallBaseId = requestParm.MallBaseId;
demodel.TenantId = requestParm.TenantId;
demodel.RB_Group_Id = userInfo.RB_Group_id;
var list = suppliesModule.GetWareHouseList(demodel);
......@@ -228,8 +230,9 @@ namespace Property.WebApi.Controllers.User
{
return ApiResult.ParamIsNull("请输入物料仓库名称");
}
demodel.MallBaseId = requestParm.MallBaseId;
demodel.TenantId = requestParm.TenantId;
demodel.Status = 0;
demodel.RB_Branch_Id = userInfo.RB_Branch_id;
demodel.RB_Group_Id = userInfo.RB_Group_id;
......
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