仓库-批量出库功能实现
This commit is contained in:
@@ -104,7 +104,25 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
return ToResponse(response);
|
return ToResponse(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 按批次出库
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("doPatchOutProduction")]
|
||||||
|
[Log(Title = "按批次出库", BusinessType = BusinessType.INSERT)]
|
||||||
|
public IActionResult DoPatchOutProduction([FromBody] WmBatchGoodsOutProductionDto parm)
|
||||||
|
{
|
||||||
|
string response = _WmGoodsOutProductionService.DoPatchOutProduction(parm);
|
||||||
|
if(response == "ok")
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(200, response, response));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, response, response));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,5 +93,19 @@ namespace ZR.Model.MES.wms.Dto
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 批次出库
|
||||||
|
/// </summary>
|
||||||
|
public class WmBatchGoodsOutProductionDto
|
||||||
|
{
|
||||||
|
public List<string> Ids { get; set; }
|
||||||
|
public string FkOutOrderId { get; set; } = "无出库单";
|
||||||
|
public string PackageCodeClient { get; set; } = string.Empty;
|
||||||
|
public string Partnumber { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 1-传ids全部出库 2-按批次号全部出库
|
||||||
|
/// </summary>
|
||||||
|
public int Type { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20,5 +20,6 @@ namespace ZR.Service.mes.wms.IService
|
|||||||
|
|
||||||
int UpdateWmGoodsOutProduction(WmGoodsOutRecord parm);
|
int UpdateWmGoodsOutProduction(WmGoodsOutRecord parm);
|
||||||
|
|
||||||
|
string DoPatchOutProduction(WmBatchGoodsOutProductionDto parm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using ZR.Service.mes.wms.IService;
|
|||||||
using ZR.Model.MES.wms;
|
using ZR.Model.MES.wms;
|
||||||
using ZR.Model.MES.wms.Dto;
|
using ZR.Model.MES.wms.Dto;
|
||||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace ZR.Service.mes.wms
|
namespace ZR.Service.mes.wms
|
||||||
{
|
{
|
||||||
@@ -120,5 +121,84 @@ namespace ZR.Service.mes.wms
|
|||||||
return Update(model, true);
|
return Update(model, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string DoPatchOutProduction(WmBatchGoodsOutProductionDto parm)
|
||||||
|
{
|
||||||
|
int type = parm.Type;
|
||||||
|
var time = DateTime.Now.ToLocalTime();
|
||||||
|
if (type == 1)
|
||||||
|
{
|
||||||
|
var list = parm.Ids;
|
||||||
|
for (int i = 0; i < list.Count; i++)
|
||||||
|
{
|
||||||
|
WmGoodsNowProduction nowProduction = Context.Queryable<WmGoodsNowProduction>()
|
||||||
|
.Where(it => it.Id == list[i]).First();
|
||||||
|
if(nowProduction == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
WmGoodsOutRecord outRecord = new()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||||
|
FkNowProductionId = nowProduction.Id,
|
||||||
|
FkOutOrderId = parm.FkOutOrderId,
|
||||||
|
PackageCode = nowProduction.PackageCode,
|
||||||
|
PackageCodeClient = nowProduction.PackageCodeClient,
|
||||||
|
PackageCodeOriginal = nowProduction.PackageCodeOriginal,
|
||||||
|
LocationCode = nowProduction.LocationCode,
|
||||||
|
Partnumber = nowProduction.Partnumber,
|
||||||
|
GoodsNumAction = nowProduction.GoodsNumAction,
|
||||||
|
GoodsNumLogic = nowProduction.GoodsNumAction,
|
||||||
|
EntryWarehouseTime = nowProduction.EntryWarehouseTime,
|
||||||
|
OutTime = time,
|
||||||
|
Remark = "批量出库",
|
||||||
|
CreatedBy = "batch",
|
||||||
|
CreatedTime = time,
|
||||||
|
};
|
||||||
|
Context.Insertable(outRecord).ExecuteCommand();
|
||||||
|
Context.Deleteable<WmGoodsNowProduction>().Where(it => it.Id == nowProduction.Id).ExecuteCommand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(type == 2)
|
||||||
|
{
|
||||||
|
if (parm.PackageCodeClient == "" || parm.PackageCodeClient == null)
|
||||||
|
{
|
||||||
|
return "无批次号参数";
|
||||||
|
}
|
||||||
|
// 短批次号
|
||||||
|
string shortPackageCode = parm.PackageCodeClient.Split('_')[0];
|
||||||
|
List<WmGoodsNowProduction> nowProductionList = Context.Queryable<WmGoodsNowProduction>()
|
||||||
|
.Where(it => it.PackageCodeClient.Contains(shortPackageCode)).ToList();
|
||||||
|
for (int i = 0; i < nowProductionList.Count; i++)
|
||||||
|
{
|
||||||
|
WmGoodsNowProduction nowProduction = Context.Queryable<WmGoodsNowProduction>()
|
||||||
|
.Where(it => it.Id == nowProductionList[i].Id).First();
|
||||||
|
if (nowProduction == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
WmGoodsOutRecord outRecord = new()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||||
|
FkNowProductionId = nowProduction.Id,
|
||||||
|
FkOutOrderId = parm.FkOutOrderId,
|
||||||
|
PackageCode = nowProduction.PackageCode,
|
||||||
|
PackageCodeClient = nowProduction.PackageCodeClient,
|
||||||
|
PackageCodeOriginal = nowProduction.PackageCodeOriginal,
|
||||||
|
LocationCode = nowProduction.LocationCode,
|
||||||
|
Partnumber = nowProduction.Partnumber,
|
||||||
|
GoodsNumAction = nowProduction.GoodsNumAction,
|
||||||
|
GoodsNumLogic = nowProduction.GoodsNumAction,
|
||||||
|
EntryWarehouseTime = nowProduction.EntryWarehouseTime,
|
||||||
|
OutTime = time,
|
||||||
|
Remark = "批量出库",
|
||||||
|
CreatedBy = "batch",
|
||||||
|
CreatedTime = time,
|
||||||
|
};
|
||||||
|
Context.Insertable(outRecord).ExecuteCommand();
|
||||||
|
Context.Deleteable<WmGoodsNowProduction>().Where(it => it.Id == nowProduction.Id).ExecuteCommand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "ok";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user