1.库位禁用和启用、模组禁用启用

2.退出出库先解锁 后发指令
This commit is contained in:
hehaibing-1996
2024-05-21 18:46:51 +08:00
parent b2f9c7cc22
commit 472862a978
16 changed files with 417 additions and 36 deletions

View File

@ -32,19 +32,33 @@ namespace WCS.BLL.Services.IService
/// <summary>
/// 查询货架列表
/// 查询模组列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<PageQueryResponse<ModuleInfo>> GetModules(GetModulesRequest request);
/// <summary>
/// 禁用或启用模组
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<ResponseCommon> disableOrEnableModule(DisableOrEnableModuleRequest request);
/// <summary>
/// 查询货架列表
/// 查询库位列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<PageQueryResponse<StoreInfo>> GetStores(GetStoresRequest request);
/// <summary>
/// 禁用或启用库位
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<ResponseCommon> disableOrEnableStore(DisableOrEnableStoreRequest request);
}
}

View File

@ -261,7 +261,8 @@ namespace WCS.BLL.Services.Service
var recordsQueryable = DbHelp.db.Queryable<OutOrder>()
.WhereIF(!string.IsNullOrEmpty(request.OrderNumber), t => t.OrderNumber.Contains(request.OrderNumber))
.WhereIF(!string.IsNullOrEmpty(request.OrderSource), t => t.OrderSource.Contains(request.OrderSource))
.WhereIF(!string.IsNullOrEmpty(request.OrderType), t => t.OrderType.Contains(request.OrderType));
.WhereIF(!string.IsNullOrEmpty(request.OrderType), t => t.OrderType.Contains(request.OrderType))
.WhereIF(request.ShelfTypeId != 0, t => t.ShelfTypeId == request.ShelfTypeId);
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
@ -859,6 +860,10 @@ namespace WCS.BLL.Services.Service
DbHelp.db.Updateable(order).ExecuteCommand();
}
//解锁物料 删除物料明细
if (order.SyncType == SyncTypeEnum.ByMatCode)
CancelOutOrderMatDetails(order);
//找到正在出对应出库单的货架
var shelves = ShelfManager.Shelves.Where(t => t.OrderNumber == request.OrderNumber)
.Where(t => t.CurrentMode == HardWare.Mode.)
@ -874,15 +879,15 @@ namespace WCS.BLL.Services.Service
};
}
//退出出库模式
shelves.ForEach(t =>
{
t.GoOutOutstore();
});
//解锁物料 删除物料明细
if (order.SyncType == SyncTypeEnum.ByMatCode)
CancelOutOrderMatDetails(order);
return new ResponseCommon()
{

View File

@ -12,6 +12,7 @@ using WCS.DAL.Db;
using WCS.DAL.DbModels;
using WCS.Model;
using WCS.Model.ApiModel;
using WCS.Model.ApiModel.InOutRecord;
using WCS.Model.ApiModel.StoreInfo;
using WCS.Model.ApiModel.User;
@ -308,6 +309,58 @@ namespace WCS.BLL.Services.Service
};
}
}
/// <summary>
/// 禁用或启用模组
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<ResponseCommon> disableOrEnableModule(DisableOrEnableModuleRequest request)
{
//找到库位
var moduleInfo = await DbHelp.db.Queryable<ModuleInfo>()
.Where(t => t.Id == request.ModuleId)
.FirstAsync();
//库位不存在
if (moduleInfo == null)
{
return new ResponseCommon()
{
Code = 201,
Message = $"操作失败:模组{request.ModuleCode}不存在!"
};
}
try
{
DbHelp.db.BeginTran();
//禁用需要删除当前库存数据
if (request.DisableOrEnable == DisableOrEnableEnum.Disable)
{
moduleInfo.IsEnable = false;
}
else
{
moduleInfo.IsEnable = true;
}
DbHelp.db.Updateable(moduleInfo).ExecuteCommand();
DbHelp.db.CommitTran();
return new ResponseCommon()
{
Code = 200,
Message = $"Success"
};
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseCommon()
{
Code = 300,
Message = $"操作失败:异常{ex.Message}"
};
}
}
#endregion
#region
@ -352,6 +405,85 @@ namespace WCS.BLL.Services.Service
};
}
}
public async Task<ResponseCommon> disableOrEnableStore(DisableOrEnableStoreRequest request)
{
//找到库位
var storeInfo = await DbHelp.db.Queryable<StoreInfo>()
.Where(t => t.Id == request.StoreId)
.FirstAsync();
//库位不存在
if (storeInfo == null)
{
return new ResponseCommon()
{
Code = 201,
Message = $"操作失败:库位{request.SroreCode}不存在!"
};
}
try
{
DbHelp.db.BeginTran();
//禁用需要删除当前库存数据
if (request.DisableOrEnable == DisableOrEnableEnum.Disable)
{
//库位
storeInfo.CurrentMatSn = "禁用";
//库存数据处理
var inventorys = DbHelp.db.Queryable<InventoryDetail>()
.Where(t => t.StoreId == storeInfo.Id)
.ToList();
if (inventorys != null && inventorys.Count > 0)
{
//删除并进行出入库记录
foreach (var inventory in inventorys)
{
var inOutRecord = new InOutRecord()
{
StoreCode = storeInfo.StoreCode,
StoreId = storeInfo.Id,
StoreInfo = storeInfo,
MatSN = inventory.MatSN,
MatCode = inventory.MatCode,
MatName = inventory.MatName,
MatSpec = inventory.MatSpec,
MatBatch = inventory.MatBatch,
MatQty = inventory.MatQty,
MatCustomer = inventory.MatCustomer,
MatSupplier = inventory.MatSupplier,
OperateUser = request.UserName + "(禁用库位)",
Direction = DirectionEnum.,
};
DbHelp.db.Insertable(inOutRecord).ExecuteCommand();
DbHelp.db.Deleteable(inventory).ExecuteCommand();
}
}
}
else
{
storeInfo.CurrentMatSn = string.Empty;
}
DbHelp.db.Updateable(storeInfo).ExecuteCommand();
DbHelp.db.CommitTran();
return new ResponseCommon()
{
Code = 200,
Message = $"Success"
};
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseCommon()
{
Code = 300,
Message = $"操作失败:异常{ex.Message}"
};
}
}
#endregion
}
}