毛坯库存同步功能,毛坯库存盘点功能,物料清单毛坯号查询功能,版本不稳定,需要一定时间测试
This commit is contained in:
parent
13cf1be5a7
commit
5ca9d57566
@ -109,7 +109,7 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return ToResponse(new ApiResult(500, ex.Message, "添加记录失败"));
|
return ToResponse(new ApiResult(500, ex.Message, "添加入库记录失败"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,7 +153,76 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return ToResponse(new ApiResult(500, ex.Message, "添加记录失败"));
|
return ToResponse(new ApiResult(500, ex.Message, "添加出库记录失败"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 3.盘点库存
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fkBlankInventoryId">库存id</param>
|
||||||
|
/// <param name="blankNum">毛坯号</param>
|
||||||
|
/// <param name="changeQuantity">变动量</param>
|
||||||
|
/// <param name="actionTime">操作时间(出库时间)</param>
|
||||||
|
/// <param name="remark">备注</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("doStocktakingBlankInventory")]
|
||||||
|
public IActionResult DoStocktakingBlankInventory(
|
||||||
|
string fkBlankInventoryId,
|
||||||
|
string blankNum,
|
||||||
|
int changeQuantity,
|
||||||
|
string remark,
|
||||||
|
DateTime? actionTime
|
||||||
|
)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(fkBlankInventoryId))
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, "库存id为空!", "库存id为空!"));
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(blankNum))
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!"));
|
||||||
|
}
|
||||||
|
var response = _WmBlankRecordService.DoStocktakingBlankInventory(
|
||||||
|
fkBlankInventoryId,
|
||||||
|
blankNum,
|
||||||
|
changeQuantity,
|
||||||
|
HttpContext.GetName(),
|
||||||
|
remark,
|
||||||
|
actionTime
|
||||||
|
);
|
||||||
|
return SUCCESS(response);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, ex.Message, "添加盘点记录失败"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 4.根据工单号出库毛坯
|
||||||
|
/// </summary>
|
||||||
|
[HttpGet("doOutboundByWorkOrderId")]
|
||||||
|
public IActionResult DoOutboundByWorkOrderId(string workOrderId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(workOrderId))
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, "工单id为空!", "工单id为空!"));
|
||||||
|
}
|
||||||
|
var response = _WmBlankRecordService.DoOutboundByWorkOrderId(
|
||||||
|
workOrderId,
|
||||||
|
0,
|
||||||
|
HttpContext.GetName()
|
||||||
|
);
|
||||||
|
return SUCCESS(response);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return ToResponse(new ApiResult(500, ex.Message, "根据工单号出库毛坯失败"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@ namespace ZR.Service.mes.wms.IService
|
|||||||
WmBlankInventory AddWmBlankInventory(WmBlankInventory parm);
|
WmBlankInventory AddWmBlankInventory(WmBlankInventory parm);
|
||||||
|
|
||||||
int UpdateWmBlankInventory(WmBlankInventory parm);
|
int UpdateWmBlankInventory(WmBlankInventory parm);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 数据与物料清单同步
|
/// 数据与物料清单同步
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -17,6 +17,7 @@ namespace ZR.Service.mes.wms.IService
|
|||||||
WmBlankRecord AddWmBlankRecord(WmBlankRecord parm);
|
WmBlankRecord AddWmBlankRecord(WmBlankRecord parm);
|
||||||
|
|
||||||
int UpdateWmBlankRecord(WmBlankRecord parm);
|
int UpdateWmBlankRecord(WmBlankRecord parm);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 入库
|
/// 入库
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -35,6 +36,7 @@ namespace ZR.Service.mes.wms.IService
|
|||||||
string remark,
|
string remark,
|
||||||
DateTime? actionTime
|
DateTime? actionTime
|
||||||
);
|
);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 出库
|
/// 出库
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -53,5 +55,26 @@ namespace ZR.Service.mes.wms.IService
|
|||||||
string remark,
|
string remark,
|
||||||
DateTime? actionTime
|
DateTime? actionTime
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 库存盘点
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
int DoStocktakingBlankInventory(
|
||||||
|
string fkBlankInventoryId,
|
||||||
|
string blankNum,
|
||||||
|
int changeQuantity,
|
||||||
|
string username,
|
||||||
|
string remark,
|
||||||
|
DateTime? actionTime
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据工单出库毛坯
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
int DoOutboundByWorkOrderId(string workOrderId, int changeQuantity, string username);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
using Infrastructure.Attribute;
|
|
||||||
using SqlSugar;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Infrastructure.Attribute;
|
||||||
|
using JinianNet.JNTemplate;
|
||||||
|
using SqlSugar;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
using ZR.Model.MES.wms;
|
using ZR.Model.MES.wms;
|
||||||
using ZR.Model.MES.wms.Dto;
|
using ZR.Model.MES.wms.Dto;
|
||||||
@ -13,7 +14,10 @@ namespace ZR.Service.mes.wms
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 毛坯库存表Service业务层处理
|
/// 毛坯库存表Service业务层处理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[AppService(ServiceType = typeof(IWmBlankInventoryService), ServiceLifetime = LifeTime.Transient)]
|
[AppService(
|
||||||
|
ServiceType = typeof(IWmBlankInventoryService),
|
||||||
|
ServiceLifetime = LifeTime.Transient
|
||||||
|
)]
|
||||||
public class WmBlankInventoryService : BaseService<WmBlankInventory>, IWmBlankInventoryService
|
public class WmBlankInventoryService : BaseService<WmBlankInventory>, IWmBlankInventoryService
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -23,11 +27,14 @@ namespace ZR.Service.mes.wms
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public PagedInfo<WmBlankInventoryDto> GetList(WmBlankInventoryQueryDto parm)
|
public PagedInfo<WmBlankInventoryDto> GetList(WmBlankInventoryQueryDto parm)
|
||||||
{
|
{
|
||||||
var predicate = Expressionable.Create<WmBlankInventory>()
|
var predicate = Expressionable
|
||||||
.AndIF(!string.IsNullOrEmpty(parm.BlankNum), it => it.BlankNum.Contains(parm.BlankNum))
|
.Create<WmBlankInventory>()
|
||||||
|
.AndIF(
|
||||||
|
!string.IsNullOrEmpty(parm.BlankNum),
|
||||||
|
it => it.BlankNum.Contains(parm.BlankNum)
|
||||||
|
)
|
||||||
.AndIF(parm.Status > -1, it => it.Status == parm.Status)
|
.AndIF(parm.Status > -1, it => it.Status == parm.Status)
|
||||||
.AndIF(parm.Type > 0, it => it.Type == parm.Type)
|
.AndIF(parm.Type > 0, it => it.Type == parm.Type);
|
||||||
;
|
|
||||||
|
|
||||||
var response = Queryable()
|
var response = Queryable()
|
||||||
.Where(predicate.ToExpression())
|
.Where(predicate.ToExpression())
|
||||||
@ -37,10 +44,11 @@ namespace ZR.Service.mes.wms
|
|||||||
{
|
{
|
||||||
foreach (WmBlankInventoryDto item in response.Result)
|
foreach (WmBlankInventoryDto item in response.Result)
|
||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context
|
||||||
.Where(it => it.BlankNum == item.BlankNum)
|
.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Type == 2)
|
.Where(it => it.BlankNum == item.BlankNum)
|
||||||
.First();
|
.Where(it => it.Type == 2)
|
||||||
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
item.Description = "此毛坯号不在物料清单内!";
|
item.Description = "此毛坯号不在物料清单内!";
|
||||||
@ -50,13 +58,14 @@ namespace ZR.Service.mes.wms
|
|||||||
item.Unit = material.Unit;
|
item.Unit = material.Unit;
|
||||||
item.Version = material.Version;
|
item.Version = material.Version;
|
||||||
item.Specification = material.Specification;
|
item.Specification = material.Specification;
|
||||||
item.Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName;
|
item.Description = !string.IsNullOrEmpty(material.Description)
|
||||||
|
? material.Description
|
||||||
|
: material.ProductName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取详情
|
/// 获取详情
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -64,9 +73,7 @@ namespace ZR.Service.mes.wms
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public WmBlankInventory GetInfo(string Id)
|
public WmBlankInventory GetInfo(string Id)
|
||||||
{
|
{
|
||||||
var response = Queryable()
|
var response = Queryable().Where(x => x.Id == Id).First();
|
||||||
.Where(x => x.Id == Id)
|
|
||||||
.First();
|
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
@ -78,10 +85,11 @@ namespace ZR.Service.mes.wms
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public WmBlankInventory AddWmBlankInventory(WmBlankInventory model)
|
public WmBlankInventory AddWmBlankInventory(WmBlankInventory model)
|
||||||
{
|
{
|
||||||
bool hasRecord = Context.Queryable<WmBlankInventory>()
|
bool hasRecord = Context
|
||||||
.Where(it => it.BlankNum == model.BlankNum)
|
.Queryable<WmBlankInventory>()
|
||||||
.Where(it => it.Type == model.Type)
|
.Where(it => it.BlankNum == model.BlankNum)
|
||||||
.Any();
|
.Where(it => it.Type == model.Type)
|
||||||
|
.Any();
|
||||||
if (hasRecord)
|
if (hasRecord)
|
||||||
{
|
{
|
||||||
throw new Exception("毛坯仓库已有相同类别的毛坯号记录");
|
throw new Exception("毛坯仓库已有相同类别的毛坯号记录");
|
||||||
@ -121,13 +129,15 @@ namespace ZR.Service.mes.wms
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
int num = 0;
|
int num = 0;
|
||||||
List<WmMaterial> materials = Context.Queryable<WmMaterial>()
|
List<WmMaterial> materials = Context
|
||||||
.Where(it => it.Type == 2)
|
.Queryable<WmMaterial>()
|
||||||
.Where(it => !string.IsNullOrEmpty(it.BlankNum))
|
.Where(it => it.Type == 2)
|
||||||
.OrderBy(it => it.BlankNum)
|
.Where(it => !string.IsNullOrEmpty(it.BlankNum))
|
||||||
.ToList();
|
.OrderBy(it => it.BlankNum)
|
||||||
|
.ToList();
|
||||||
var uniqueBlankNums = materials.Select(m => m.BlankNum).Distinct().ToList();
|
var uniqueBlankNums = materials.Select(m => m.BlankNum).Distinct().ToList();
|
||||||
var wmBlankInventories = Context.Queryable<WmBlankInventory>()
|
var wmBlankInventories = Context
|
||||||
|
.Queryable<WmBlankInventory>()
|
||||||
.Where(it => uniqueBlankNums.Contains(it.BlankNum))
|
.Where(it => uniqueBlankNums.Contains(it.BlankNum))
|
||||||
.ToList()
|
.ToList()
|
||||||
.GroupBy(it => it.BlankNum)
|
.GroupBy(it => it.BlankNum)
|
||||||
@ -135,22 +145,44 @@ namespace ZR.Service.mes.wms
|
|||||||
foreach (WmMaterial item in materials)
|
foreach (WmMaterial item in materials)
|
||||||
{
|
{
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if (!wmBlankInventories.TryGetValue(item.BlankNum, out WmBlankInventory wmBlank))
|
if (
|
||||||
|
!wmBlankInventories.TryGetValue(item.BlankNum, out WmBlankInventory wmBlank)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// 没有找到匹配的BlankNum,添加两种类型的库存
|
// 没有找到匹配的BlankNum,添加两种类型的库存
|
||||||
result += AddBlankInventory(item.BlankNum, 1, parm.CreatedBy, parm.CreatedTime);
|
result += AddBlankInventory(
|
||||||
result += AddBlankInventory(item.BlankNum, 2, parm.CreatedBy, parm.CreatedTime);
|
item.BlankNum,
|
||||||
|
1,
|
||||||
|
parm.CreatedBy,
|
||||||
|
parm.CreatedTime
|
||||||
|
);
|
||||||
|
result += AddBlankInventory(
|
||||||
|
item.BlankNum,
|
||||||
|
2,
|
||||||
|
parm.CreatedBy,
|
||||||
|
parm.CreatedTime
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 找到了匹配的BlankNum,根据Type添加库存
|
// 找到了匹配的BlankNum,根据Type添加库存
|
||||||
if (wmBlank.Type == 1)
|
if (wmBlank.Type == 1)
|
||||||
{
|
{
|
||||||
result = AddBlankInventory(item.BlankNum, 2, parm.CreatedBy, parm.CreatedTime);
|
result = AddBlankInventory(
|
||||||
|
item.BlankNum,
|
||||||
|
2,
|
||||||
|
parm.CreatedBy,
|
||||||
|
parm.CreatedTime
|
||||||
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = AddBlankInventory(item.BlankNum, 1, parm.CreatedBy, parm.CreatedTime);
|
result = AddBlankInventory(
|
||||||
|
item.BlankNum,
|
||||||
|
1,
|
||||||
|
parm.CreatedBy,
|
||||||
|
parm.CreatedTime
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result > 0)
|
if (result > 0)
|
||||||
@ -164,43 +196,50 @@ namespace ZR.Service.mes.wms
|
|||||||
{
|
{
|
||||||
throw new Exception("同步异常:" + ex.Message);
|
throw new Exception("同步异常:" + ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 自动添加毛坯库存记录
|
/// 自动添加毛坯库存记录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="blankNum"></param>
|
/// <param name="blankNum"></param>
|
||||||
/// <param name="type"></param>
|
/// <param name="type"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public int AddBlankInventory(string blankNum, int type, string createBy = "", DateTime? createTime = null)
|
public int AddBlankInventory(
|
||||||
|
string blankNum,
|
||||||
|
int type,
|
||||||
|
string createBy = "",
|
||||||
|
DateTime? createTime = null
|
||||||
|
)
|
||||||
{
|
{
|
||||||
bool hasRecord = Context.Queryable<WmBlankInventory>()
|
bool hasRecord = Context
|
||||||
.Where(it => it.BlankNum == blankNum)
|
.Queryable<WmBlankInventory>()
|
||||||
.Where(it => it.Type == type)
|
.Where(it => it.BlankNum == blankNum)
|
||||||
.Any();
|
.Where(it => it.Type == type)
|
||||||
|
.Any();
|
||||||
if (hasRecord)
|
if (hasRecord)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
WmBlankInventory wmBlank = new()
|
WmBlankInventory wmBlank =
|
||||||
{
|
new()
|
||||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
{
|
||||||
FkPaintId = string.Empty,
|
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||||
BlankNum = blankNum,
|
FkPaintId = string.Empty,
|
||||||
Quantity = 0,
|
BlankNum = blankNum,
|
||||||
MaxNum = 0,
|
Quantity = 0,
|
||||||
MinNum = 0,
|
MaxNum = 0,
|
||||||
WarnNum = 0,
|
MinNum = 0,
|
||||||
Type = type,
|
WarnNum = 0,
|
||||||
Status = 1,
|
Type = type,
|
||||||
Remark = string.Empty,
|
Status = 1,
|
||||||
CreatedBy = createBy,
|
Remark = string.Empty,
|
||||||
CreatedTime = createTime,
|
CreatedBy = createBy,
|
||||||
UpdatedBy = createBy,
|
CreatedTime = createTime,
|
||||||
UpdatedTime = createTime,
|
UpdatedBy = createBy,
|
||||||
};
|
UpdatedTime = createTime,
|
||||||
|
};
|
||||||
|
|
||||||
return Context.Insertable(wmBlank).ExecuteCommand();
|
return Context.Insertable(wmBlank).ExecuteCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
|
using Model.DBModel;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
|
using ZR.Model.MES.pro;
|
||||||
using ZR.Model.MES.wms;
|
using ZR.Model.MES.wms;
|
||||||
using ZR.Model.MES.wms.Dto;
|
using ZR.Model.MES.wms.Dto;
|
||||||
using ZR.Repository;
|
using ZR.Repository;
|
||||||
@ -56,7 +58,7 @@ namespace ZR.Service.mes.wms
|
|||||||
WmMaterial material = Context
|
WmMaterial material = Context
|
||||||
.Queryable<WmMaterial>()
|
.Queryable<WmMaterial>()
|
||||||
.Where(it => it.BlankNum == item.BlankNum)
|
.Where(it => it.BlankNum == item.BlankNum)
|
||||||
.Where(it => it.Remarks == "毛坯")
|
.Where(it => it.Type == 2)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -239,5 +241,151 @@ namespace ZR.Service.mes.wms
|
|||||||
}
|
}
|
||||||
return resut;
|
return resut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 盘点库存
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fkBlankInventoryId"></param>
|
||||||
|
/// <param name="blankNum"></param>
|
||||||
|
/// <param name="changeQuantity"></param>
|
||||||
|
/// <param name="username"></param>
|
||||||
|
/// <param name="remark"></param>
|
||||||
|
/// <param name="actionTime"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <exception cref="Exception"></exception>
|
||||||
|
public int DoStocktakingBlankInventory(
|
||||||
|
string fkBlankInventoryId,
|
||||||
|
string blankNum,
|
||||||
|
int changeQuantity,
|
||||||
|
string username,
|
||||||
|
string remark,
|
||||||
|
DateTime? actionTime
|
||||||
|
)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Context.Ado.BeginTran();
|
||||||
|
DateTime nowTime = DateTime.Now.ToLocalTime();
|
||||||
|
// 原始数据记录
|
||||||
|
WmBlankInventory oldInfo = Context
|
||||||
|
.Queryable<WmBlankInventory>()
|
||||||
|
.Where(it => it.Id == fkBlankInventoryId)
|
||||||
|
.First();
|
||||||
|
if (oldInfo == null)
|
||||||
|
{
|
||||||
|
throw new Exception("毛坯记录不存在!");
|
||||||
|
}
|
||||||
|
WmBlankInventory updateInfo =
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
Id = fkBlankInventoryId,
|
||||||
|
Quantity = changeQuantity,
|
||||||
|
UpdatedBy = username,
|
||||||
|
UpdatedTime = nowTime
|
||||||
|
};
|
||||||
|
int res1 = Context
|
||||||
|
.Updateable(updateInfo)
|
||||||
|
.IgnoreColumns(ignoreAllNullColumns: true)
|
||||||
|
.ExecuteCommand();
|
||||||
|
WmBlankRecord res =
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||||
|
FkBlankInventoryId = fkBlankInventoryId,
|
||||||
|
BlankNum = blankNum,
|
||||||
|
ChangeQuantity = changeQuantity,
|
||||||
|
Type = 4,
|
||||||
|
Status = 1,
|
||||||
|
ActionTime = actionTime,
|
||||||
|
Remark =
|
||||||
|
remark + "\n自动添加备注:盘点原箱数" + oldInfo.Quantity + ",新箱数" + changeQuantity,
|
||||||
|
CreatedBy = username,
|
||||||
|
CreatedTime = nowTime
|
||||||
|
};
|
||||||
|
//填写库存记录
|
||||||
|
Context.Insertable(res).ExecuteCommand();
|
||||||
|
Context.Ado.CommitTran();
|
||||||
|
return res1;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Context.Ado.RollbackTran();
|
||||||
|
throw new Exception(e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int DoOutboundByWorkOrderId(string workOrderId, int changeQuantity, string username)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Context.Ado.BeginTran();
|
||||||
|
int type = 1;
|
||||||
|
DateTime nowTime = DateTime.Now.ToLocalTime();
|
||||||
|
// 提出工单
|
||||||
|
ProWorkorder_v2 workOrderInfo = Context
|
||||||
|
.Queryable<ProWorkorder_v2>()
|
||||||
|
.Where(it => it.ClientWorkorder == workOrderId)
|
||||||
|
.First();
|
||||||
|
if (workOrderInfo == null)
|
||||||
|
{
|
||||||
|
throw new Exception("工单记录不存在!" + workOrderId);
|
||||||
|
}
|
||||||
|
if (workOrderInfo.Remark1.Contains("返工"))
|
||||||
|
{
|
||||||
|
type = 2;
|
||||||
|
}
|
||||||
|
// 根据工单查看毛坯库存数据记录
|
||||||
|
WmBlankInventory blankInventory = Context
|
||||||
|
.Queryable<WmBlankInventory>()
|
||||||
|
.Where(it => it.BlankNum == workOrderInfo.BlankNumber)
|
||||||
|
.Where(it => it.Status == 1)
|
||||||
|
.Where(it => it.Type == type)
|
||||||
|
.First();
|
||||||
|
if (blankInventory == null)
|
||||||
|
{
|
||||||
|
throw new Exception("毛坯记录不存在!请检查毛坯仓库,毛坯号:" + workOrderInfo.BlankNumber);
|
||||||
|
}
|
||||||
|
WmBlankInventory updateInfo =
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
Id = blankInventory.Id,
|
||||||
|
Quantity = blankInventory.Quantity - workOrderInfo.PreviousNumber,
|
||||||
|
UpdatedBy = username,
|
||||||
|
UpdatedTime = nowTime
|
||||||
|
};
|
||||||
|
int res1 = Context
|
||||||
|
.Updateable(updateInfo)
|
||||||
|
.IgnoreColumns(ignoreAllNullColumns: true)
|
||||||
|
.ExecuteCommand();
|
||||||
|
WmBlankRecord res =
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||||
|
FkBlankInventoryId = blankInventory.Id,
|
||||||
|
BlankNum = blankInventory.BlankNum,
|
||||||
|
ChangeQuantity = workOrderInfo.PreviousNumber,
|
||||||
|
Type = 2,
|
||||||
|
Status = 1,
|
||||||
|
ActionTime = nowTime,
|
||||||
|
Remark =
|
||||||
|
"自动添加备注:工单号"
|
||||||
|
+ workOrderId
|
||||||
|
+ ",上件数"
|
||||||
|
+ workOrderInfo.PreviousNumber
|
||||||
|
+ "包装完成自动出库。",
|
||||||
|
CreatedBy = username,
|
||||||
|
CreatedTime = nowTime
|
||||||
|
};
|
||||||
|
//添加库存记录
|
||||||
|
Context.Insertable(res).ExecuteCommand();
|
||||||
|
Context.Ado.CommitTran();
|
||||||
|
return res1;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Context.Ado.RollbackTran();
|
||||||
|
throw new Exception(e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -100,6 +101,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -155,6 +157,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -201,6 +204,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -258,6 +262,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -306,6 +311,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -361,6 +367,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -406,6 +413,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
@ -499,6 +507,7 @@ namespace ZR.Service.Business
|
|||||||
{
|
{
|
||||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -78,6 +78,7 @@ namespace ZR.Service.mes.wms
|
|||||||
WmMaterial material = Context
|
WmMaterial material = Context
|
||||||
.Queryable<WmMaterial>()
|
.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Partnumber == item.Partnumber)
|
.Where(it => it.Partnumber == item.Partnumber)
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.First();
|
.First();
|
||||||
if (material == null)
|
if (material == null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -32,6 +32,7 @@ namespace ZR.Service.mes.wms
|
|||||||
partnumberByDescription = Context
|
partnumberByDescription = Context
|
||||||
.Queryable<WmMaterial>()
|
.Queryable<WmMaterial>()
|
||||||
.Where(it => it.Description.Contains(parm.Description))
|
.Where(it => it.Description.Contains(parm.Description))
|
||||||
|
.Where(it => it.Type == 1)
|
||||||
.Select(it => it.Partnumber)
|
.Select(it => it.Partnumber)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ namespace ZR.Service.mes.wms
|
|||||||
var predicate = Expressionable.Create<WmMaterial>()
|
var predicate = Expressionable.Create<WmMaterial>()
|
||||||
.AndIF(parm.Partnumber != null, it => it.Partnumber.Contains(parm.Partnumber))
|
.AndIF(parm.Partnumber != null, it => it.Partnumber.Contains(parm.Partnumber))
|
||||||
.AndIF(parm.U8InventoryCode != null, it => it.U8InventoryCode.Contains(parm.U8InventoryCode))
|
.AndIF(parm.U8InventoryCode != null, it => it.U8InventoryCode.Contains(parm.U8InventoryCode))
|
||||||
|
.AndIF(parm.BlankNum != null, it => it.BlankNum.Contains(parm.BlankNum))
|
||||||
.AndIF(parm.ProductName != null, it => it.ProductName.Contains(parm.ProductName))
|
.AndIF(parm.ProductName != null, it => it.ProductName.Contains(parm.ProductName))
|
||||||
.AndIF(parm.Color != null, it => it.Color.Contains(parm.Color))
|
.AndIF(parm.Color != null, it => it.Color.Contains(parm.Color))
|
||||||
.AndIF(parm.Specification != null, it => it.Specification.Contains(parm.Specification))
|
.AndIF(parm.Specification != null, it => it.Specification.Contains(parm.Specification))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user